По какой-то причине я не могу использовать \n
для создания перевода строки при выводе файла в PHP. Он просто пишет « \n
» в файл. Я также попытался использовать « \\n
», где он просто пишет «\ n» (как и ожидалось). Но я не могу для жизни понять, почему добавление \ n в мои строки не создает новые строки. Я также попробовал \r\n
но он просто добавляет « \r\n
» к строке в файле.
Пример:
error_log('test\n', 3, 'error.log'); error_log('test2\n', 3, 'error.log');
Выходы:
test\ntest2\n
Использование MAMP на OSX в случае, если это важно (возможно, какая-то конфигурация PHP?).
Какие-либо предложения?
Используйте двойные кавычки. "test\n"
будет работать нормально.
Если строка заключена в двойные кавычки ("), PHP будет интерпретировать больше управляющих последовательностей для специальных символов:
\n
не означает, что конечный пользователь видит новую строку, для этого вы должны использовать элемент html <br/>
. / n влияет только на то, как HTML-код, созданный php, появляется в исходном коде веб-страницы. если вы перейдете на свою веб-страницу и нажмите «Просмотр источника», вы увидите PHP-сгенерированный html как одну длинную строку. Не красиво. Для этого нужен \n
; чтобы разбить этот php-генерируемый html на более короткие строки. Цель \n
состоит в том, чтобы сделать более красивую страницу источника просмотра.
Я уверен, что вы выводите файл html. Проблема заключается в том, что html игнорирует новые строки в источнике, что означает, что вам нужно заменить символы новой строки с помощью <br/>
если вы хотите, чтобы на итоговой странице отображалась новая строка.
Когда вы запускаете PHP-скрипт в браузере, он будет отображаться как HTML по умолчанию. Если книги, которые вы используете, показывают иначе, либо код или иллюстрация неточны. Вы можете использовать «источник просмотра» для просмотра того, что было отправлено в браузер, и вы увидите, что ваши фиды каналов присутствуют.
<?php echo "Line 1\nLine 2"; ?>
Это будет отображаться в вашем браузере как:
Line 1 Line 2
Если вам нужно отправить обычный текст в свой браузер, вы можете использовать что-то вроде:
<?php header('Content-type: text/plain'); echo "Line 1\nLine 2"; ?>
Это приведет к выводу:
Line 1 Line 2
nl2br()
используется для создания новой строки
echo nl2br("Welcome\r\n This is my HTML document", false);
Вышеприведенный пример выводит:
желанный
Это мой HTML-документ
Вам нужно использовать двойные кавычки. Двойные кавычки имеют больше символов эвакуации.
error_log("test\n", 3, 'error.log'); error_log("test2\n", 3, 'error.log');
Это потому, что вы используете апострофы ('). Вместо этого используйте quotationmarks ("). 'Предлагает PHP использовать все, что находится между апострофами буквально.
Двойные кавычки – это то, что вы хотите. Одиночные кавычки игнорируют \
escape. Двойные кавычки также будут оценивать переменные выражения для вас.
Проверьте эту страницу в руководстве по php для получения дополнительной информации.
поместить \n
в двойные кавычки try
$LOG = str_replace('\n', "\n", $LOG);
Если вы хотите напечатать что-то вроде этого с помощью новой строки (\ n) после нее:
<p id = "theyateme">Did it get eaten?</p>
Чтобы распечатать выше, вы должны сделать следующее:
<?php print('<p id = "theyateme">Did it get eaten?</p>' . "\n"); ?>
Код клиента сверху:
<p id = "theyateme">Did it get eaten?</p>
Вывод сверху:
Он съел?
Я знаю, что это сложно, но я всегда так делаю, и ты почти всегда должен так поступать.
Иногда вы хотите, чтобы PHP печатал \ n на страницу вместо того, чтобы давать новую строку, например, в JavaScript-коде (сгенерированном PHP).
ПРИМЕЧАНИЕ об ответе: Возможно, вы можете: почему вы использовали печать вместо эха (мне нравится мое эхо). Это потому, что я предпочитаю печатать над echo и printf, потому что в некоторых случаях он работает лучше (мои случаи обычно), но в этом случае это может быть сделано отлично.