почему PHP fopen + fwrite двойной документ?


Я использую PHP версии 5.3.4 с Apache/2.2.17 в 32-разрядной версии Windows 7 Ultimate (IIS отключен). Я смотрел на режимы fopen и хорошо знаю, какой режим что делает, но я не могу понять, почему двойная запись в текстовый файл с одной записью. Я даже пробовал режимы: w и c.

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

В реальный вопрос в том, почему режим "а" вместо простого добавления новых данных записывает (дублирует) новые данные в файл дважды, прежде чем он закроется.

В коде php:

$fh = "";
if(!($fh = fopen("list.txt","x")) // if file exists, just open for writing (prepend)
   $fh = fopen("list.txt","a"); // if not exist, open just for writing (append)

fwrite($fh,"Somthing\r\n"); // write to file (filehandle, "data")
fclose($fh); // close the file

Результаты:
Что-то
Что-то

РЕШЕНО: Нашел виновника: с моим кодированием все было в порядке. Это было расширение html-валидатора, которое я использовал для Chromium в Ubuntu 10.04. Это расширение, по-видимому, вызывало нечто похожее на мгновенную перезагрузку страницы.

Author: robx, 2011-04-30

2 answers

$fh = fopen("list.txt","a");
fwrite($fh,"Somthing\n"); // write to file (filehandle, "data")
fclose($fh); // close the file

Ваша логика была неправильной.

Вот как это делается, я надеюсь, что это сработает для вас

 0
Author: Ibu, 2011-04-29 21:11:50

Я ценю, что этому уже много лет, но известно, что эта проблема все еще возникает, и есть еще одна причина, которая также может ее вызвать. У меня не было расширения, используемого @robx, отключил все мои расширения и никаких изменений - все равно двойные записи. Однако, прочитав эту тему о том, что это ошибка Chrome (https://bugs.chromium.org/p/chromium/issues/detail?id=64810 ) комментарий 16 предполагает, что проблема заключается в предварительном выборе значка. Не идеально, но удалите тег ссылки на значок избранного в заголовок документа и он останавливает двойные записи.

 0
Author: garrettlynch, 2018-08-10 12:23:57