Странности при записи в файл

  • Автор темы Автор темы varan
  • Дата начала Дата начала

varan

Б̈́̈̽ͮͣ̈Л̩̲̮̻̤̹͓ДͦЖ̯̙̭̥̑͆А͇̠̱͓͇̾ͨД͙͈̰̳͈͛ͅ
Странности при записи в файл

Моя программа выполняет очень много одинаковых операций.
Я записываю номер выполненной операции в специальный файл status.txt (там только одно целое число). Это делается для того, чтобы если срабатывает time_limit или обрыв соединения, можно было продолжать дальше.

Так вот, когда я во время работы нажимаю кнопку стоп на браузере, в этот файл почему-то записывается пустая строка, проще говоря, файл обнуляется.

Почему так?
Я нигде не записываю никаких строк, только целые числа.
Уже пробовал и fflush и clearstatcache, но не помогло :(
 
предлагаю воспользоваться сессиями+куками - статус ведь пишется для клиента? тогда ничего страшного при разрыве связи не произойдет.
 
Спасибо, вы мне очень помогли!
И все же, почему так происходит???????????
 
потому что файл открывается и не успевает дописать инфу т.к. ты останавливаешь скрипт.
 
Запись происходит таким образом:
1: $fp = fopen(...
2: fwrite($fp, ...
3: fflush($fp);
4: fclose($fp, ...

Мне кажется, маловероятно, что мне всегда удается остановить скрипт между строчками 2 и 3
 
Делай запись во временный файл, а когда закончишь переименовывай или копируй в рабочий. (rename, copy)
 
2 corda
Так ведь идея втом, чтоб создавать файл на случай обрыва связи или чего-то еще, когда скрипт до конца не выполнится. ТОгда временный файл тоже останется пустым
 
Originally posted by IntenT
ТОгда временный файл тоже останется пустым
Не тоже, а только. Конечно, это не решит проблему обрыва записи, но позволит не терять данные, которые до этого были.
 
Сверху