Очистка файла чтобы вернуло true ?
1.
KOZZ (04.02.2011 / 18:40)
Чищу файл так:
file_put_contents('file.dat',''); - возвращается, соответственно, 0 , так как:
Возвращаемым функцией значением является количество записанных в файл байтов.
А как быть с тем случаем, когда я изначально и записываю 0 байтов?
то есть и в случае ошибки и в случае успешной записи вернется 0 байтов, а как тогда обрабатывать ошибки?
2.
Женек (04.02.2011 / 19:37)
проверяй сколько байт записывается и дели на условия, первое что в голову пришло
3.
Максим (04.02.2011 / 19:38)
ну тогда дополнительно юзать filesize('file.dat'), если вернуло 0 байтов, то file_put_contents('file.dat','') сработало без ошибок
Добавлено через 01:16 сек.
вот както так... но опятже это не удобно, тогда как быть я не знаю..
4.
KOZZ (04.02.2011 / 19:41)
2.
Basters, так 0 байт и записывается
5.
Максим (04.02.2011 / 19:43)
значт всё-таки проверять, сравнивать размер файла до и после file_put_contents
Добавлено через 01:40 сек.
а можно просто записать в фаил 1 байт, допустим пусть это будет так: file_put_contents('file.dat',"\n")
6.
KOZZ (04.02.2011 / 19:45)
5.
АвтоGnom, как то не изящно, может можно еще что то придумать
1 байт не вариант, как и пробел и прочее
7.
Максим (04.02.2011 / 19:46)
просто перенос строки и всё. ошибки тоже можно отловить
Добавлено через 01:14 сек.
больше ничего в голову пока не приходит.. (у нас уже час ночи, бошка не варит...)
Добавлено через 01:48 сек.
6.
Ботаник eGo, ну а что ты можешь хотябы предложить?
8.
KOZZ (04.02.2011 / 19:50)
7.
АвтоGnom, если бы я мог что предложить, я бы не создавал тему ))
была идея проверять размер до и после, о чем собственно ты и написал
9.
Максим (04.02.2011 / 19:52)
значит юзай filesize('file.dat') и сверяй тупо размеры. если одинаковы, то еррор, если нет, то живём и радуемся.возможно будет косяк, допустим если до file_put_contents размер файла равен 0 байт и после, то тоже ошибка типа
Добавлено через 00:58 сек.
8.
Ботаник eGo, +1 с тя))))) если заслужил конечно...
10.
KOZZ (04.02.2011 / 19:54)
9.
АвтоGnom, ох уж эти кармодрочеры )))
подождем пока, может будут еще идеи у кого
11.
Максим (04.02.2011 / 19:55)
10.
Ботаник eGo, если честно, мне пох на карму) можешь и минус влепить...
Добавлено через 02:32 сек.
fwrite тоже так-же работает...
12.
ramzes (04.02.2011 / 22:12)
10.
Ботаник eGo, саму цель сего действия огласи, мне кажется не туда ты завернул...
можно как то иначе
13.
Роман (04.02.2011 / 22:17)
автор, попробуй вот так:
<?php
$fp = fopen('FILE.TXT', "w");
if($fp) {
echo 'True';
// вернуло истину
}
else
{
echo 'False';
// Вернуло ложь
}
@fclose($fp);
?>
14.
Алексей (04.02.2011 / 23:04)
можешь заюзать ftruncate()
15.
Александр (04.02.2011 / 23:06)
"в случае успешной записи " Если нечего писать она не пишет.
Что то не так делаешь если такая проблема. Да и зачем?
Может не нужно вообще записывать если инфы на 0 байт?
16.
KOZZ (05.02.2011 / 08:08)
сама суть: тупо очистить файл, без каких-либо дальнйших премудростей
то есть мне нужно получить такую конструкцию:
<?
if(файл очищен){echo 'ok';} else {echo 'fuck';}
?>
наверное куда проще просто проверять filesize после очистки, и все
17.
Петя (05.02.2011 / 08:14)
16.
Ботаник eGo, ftruncate(); используй
18.
Петя (05.02.2011 / 08:54)
Либо удалить его и создать снова, либо записать в него пустую строку:
file_put_contents("файл", "");
19.
Виталий (05.02.2011 / 09:32)
в ftruncate чем не катит??? О_о
20.
KOZZ (05.02.2011 / 09:38)
19.
CUl5-AJIb9lHC, ну как минимум это
fopen,ftruncate,fclose - не люблю функции php3.
придется функцию делать отдельную.
как дойдут руки попробую
21.
ramzes (05.02.2011 / 13:24)
Furnament (5 Февраля 2011 / 08:54)
Либо удалить его и создать снова, либо записать в него пустую строку:
file_put_contents("файл", "");
просто удалить и ни чего не записывать и не создавать
22.
Петя (05.02.2011 / 13:28)
21.
ramzes, одинаково
23.
ramzes (05.02.2011 / 14:06)
22.
Furnament, в смысле?
просто не за чем хранить пустой файл
24.
Петя (05.02.2011 / 15:07)
23.
ramzes, имел ввиду одно и тоже,кому как,можно оставлять пустые,можно создавать при записи
25.
ramzes (05.02.2011 / 20:32)
просто удобнее не захламлять хост, а создавать когда надо, да и гемороя не нужно этого с тру не тру ни как не вытру))
26.
Алексей (05.02.2011 / 20:40)
только что проверил, ftruncate возвращает 1, по крайней мере echo так выдал
это тру или не тру?
27.
ramzes (05.02.2011 / 21:21)
тру, все что не фолс все тру
28.
KOZZ (06.02.2011 / 15:11)
Спасибо всем, решил удалять файл, и правда: толку то с него? ))
URL:
https://visavi.net/topics/18515