2016-09-15 2 views
1

Я знаю, что это должно быть очень просто, но я не могу заставить его работать! Я хочу новую строку после $ _POST ['query'] записывается в data.txt! Я пробовал его с помощью PHP_EOL, но он не работает?Fwrite не пишет новую строку в txt-файл

Вот мой код на данный момент:

$fh = fopen("data.txt", "a"); 
// Write text 
$input1=$_POST['query']; 
fwrite($fh , $input1 . PHP_EOL); 
// Close the text file 
fclose($fh); 

Кроме того, это не работает:

$f = fopen("data.txt", "a"); 
// Write text 
fwrite($f, $_POST["query"]"/n"); 
// Close the text file 
fclose($f); 

Спасибо за помощь!

+1

Как вы это проверяете? Поскольку fwrite будет писать любую новую строку/возврат на вашей операционной платформе, если вы используете PHP_EOL –

+0

, я видел это на другом сайте и пробовал его .. имел это раньше: \t $ f = fopen ("data.txt", "a"); // Запись текста fwrite ($ f, $ _POST ["query"]); // Закрываем текстовый файл fclose ($ f); – Legendi

+0

Если вы проверяете это, повторяя содержимое data.txt в своем браузере, новые строки не будут отображаться. –

ответ

0

fwrite() и связанные функции сегодня устарели. Я рекомендую читать на file_put_contents() и связанные с ним функции, поскольку они облегчают работу с файлами.

PHP руководство: http://php.net/manual/en/function.file-put-contents.php

Кроме того, перечитайте, как вы делаете вашу конкатенацию.

PS: Ваш сценарий уязвим для атак с точки зрения данных, поскольку вы не проверяете ввод. Например, допустимо ли разрешать пропусканию новой строки для пользователя? И если да, то что происходит с вашей структурой данных, если кто-то это делает?

Смежные вопросы