Очистка файла чтобы вернуло 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 после очистки, и все smile

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, одинаково smile

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 так выдал D это тру или не тру?

27. ramzes (05.02.2011 / 21:21)
тру, все что не фолс все тру smile

28. KOZZ (06.02.2011 / 15:11)
Спасибо всем, решил удалять файл, и правда: толку то с него? ))

URL: https://visavi.net/topics/18515