Использование конца строки в эхо-строке PHP
Я пытаюсь написать PHP-скрипт, который echo
строку, но он не распознает функцию конца строки.
Например,
echo "thank you \n "
echo "for coming over"
\n
игнорируется и печатает всю строку как thank you for coming over
.
Я получил тот же результат для следующего:
echo "thank you " . PHP_EOL.;
echo "for coming over" . PHP_EOL.;
Ответы
Ответ 1
Существуют различные способы решения этой проблемы:
Использование форматированного текста
echo '<pre>'; // pre-formatted text, \n should work
echo "thank you \n ";
echo "for coming over";
echo '</pre>';
Изменение типа содержимого
header('Content-Type: text/plain');
echo "thank you \n ";
echo "for coming over";
Теперь браузер будет корректно читать вывод в виде текста.
Использование элемента разбиения HTML
echo "thank you <br>\n ";
echo "for coming over";
Поэтому вывод всегда зависит от того, что вы хотите вывести. Это текст? Это HTML? Это какой-то текст в HTML? В зависимости от того, что вам нужно, вы должны позаботиться о формате и форматировании.
Ответ 2
Если вы делаете это в браузере, замените \n
на <br />
. Разрывы строк файла не отображаются на HTML-странице, если не указано через CSS или если они заключены в определенные теги. Вы также можете изменить тип файла на text/plain
, но я не думаю, что это было бы желательно.
Ответ 3
попробуйте это
обычно вы можете использовать
echo "thank you <br>";
echo "for coming over<br>";
и во время обработки файлов
echo "thank you ".PHP_EOL."";
echo "for coming over".PHP_EOL."";
Ответ 4
Если вы хотите напечатать текст, содержащий eol в html, дайте nl2br выстрел
$str = "thank you \n ";
$str .= "for coming over";
nl2br($str);
Он будет добавлять разрывы строк HTML перед всеми eols.
Ответ 5
Проверьте источник веб-страницы в браузере, появится новая строка. Поскольку в HTML пробелы, такие как символы новой строки, табуляции или пробелы, игнорируются, их нельзя увидеть в браузере. Чтобы напечатать то, что вы хотите, вам нужно использовать <br />
или
и т.д.