Я использую PHP версии 5.3.4 с Apache/2.2.17 в Windows 7 Ultimate 32bit (IIS отключен). Я просматривал режимы fopen и хорошо знаю, что делает этот режим. что, но я не могу понять, почему двойная публикация в txt-файл с одним fwrite. Я даже пробовал режимы: 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. Это расширение, по-видимому, вызывало нечто похожее на мгновенную перезагрузку страницы.