Привет, Я пытаюсь создать код, который сначала читает существующее содержимое файла, а затем добавляет новую строку кода в новую строку, но код, который я использую, просто добавляет его к новому тексту на уже существующую строку вместо новой линии …
Вот код, который я использую:
<?php $id = $_GET['id']; $userfile = "user1.txt"; $fo = fopen($userfile, 'r') or die("can't open favourites file"); $currentdata = fread($fo, filesize($userfile)); fclose($fo); $fw = fopen($userfile, 'w') or die("can't open favourites file"); $currentprocessed = "$currentdata\n"; fwrite($fw, $currentprocessed); fwrite($fw, $id); fclose($fw); ?>
Я пробовал целый ряд различных идей, но ничего не сработало, любая помощь была бы оценена.
Вместо добавления \n
конкатенация константы PHP_EOL
которая всегда является верным символом новой строки для текущей платформы.
Также может возникнуть проблема с программой, которую вы используете, чтобы открыть текстовый файл. Например, Notepad on Windows неспособна понять новые строки стиля unix.
Окончания строк для ОС
Unix / Linux
\n
DOS / Windows
\r\n
Инвалид
\r
и \n\r
Значение константы PHP_EOL
зависит от платформы php.
Он не обнаруживает окончания строки в текущем файле или что-либо волшебство.
Я столкнулся с этой проблемой. Какое приложение вы используете для чтения файла? Я обнаружил, что по какой-то причине Notepad (мой файл по умолчанию для файлов .txt) не распознал escape-символы «\ n \ r». Я открыл свой .txt-файл, который я писал, используя Notepad ++, Atom (мой текстовый редактор) или в браузере, и все они отлично отображали разрывы строк.