В PHP я пытаюсь создать символ новой строки:
echo $clientid;
echo ' ';
echo $lastname;
echo ' ';
echo '\r\n';
После этого я открываю созданный файл в Блокноте, и он буквально записывает новую строку:
1 Джон Доу 1 Джон Доу 1 Джон Доу
Я перепробовал много вариантов \r\n
, но ни одна из них не работает. Почему перевод строки не превращается в перевод строки?
php
string-interpolation
davidjhp
источник
источник
Ответы:
Только строки в двойных кавычках интерпретируют escape-последовательности
\r
и\n
как '0x0D' и '0x0A' соответственно, поэтому вы хотите:Строки в одинарных кавычках , с другой стороны, знают только escape-последовательности
\\
и\'
.Поэтому, если вы не объедините строку в одинарных кавычках с разрывом строки, сгенерированным в другом месте (например, с помощью строки в двойных кавычках
"\r\n"
или с помощьюchr
функцииchr(0x0D).chr(0x0A)
), единственный другой способ получить разрыв строки в одной строке в кавычках - это буквально напечатать ее с помощью редактора:Обязательно проверьте ваш редактор на наличие настроек разрыва строки, если вам требуется определенная последовательность символов (
\r\n
например).источник
PHP_EOL
вместо этогоИспользуйте предопределенную
PHP_EOL
константу:Значение константы будет установлено в соответствии с окончанием строки операционной системы, в которой выполняется PHP. В Linux это будет
"\n"
; на винде это будет"\r\n"
.источник
Команда "echo" в PHP отправляет вывод в браузер в виде необработанного html, поэтому даже если в двойных кавычках браузер не будет разбирать его на две строки, потому что символ новой строки в HTML ничего не значит. Вот почему вы должны использовать:
при использовании "echo", или вместо этого используйте fwrite ...
Это выведет новую строку HTML вместо "\ n".
источник
Используйте константу PHP_EOL, чтобы получить правильный символ независимо от платформы.
http://us3.php.net/manual/en/reserved.constants.php
Простой пример использования:
источник
Строки между двойными кавычками
""
интерполируются, то есть они преобразуют экранированные символы в печатные символы.Строки между одинарными кавычками
''
являются буквальными, что означает, что они обрабатываются в точности так, как вводятся символы.Вы можете иметь оба на одной строке:
выходы:
источник
echo "$clientid $lastname\r\n"
Вы должны использовать это:
Вы также можете взглянуть на PHP EOL .
источник
На самом деле
\r\n
для html стороны вывода. С этими символами вы можете просто создать новую строку в HTML-коде, чтобы сделать его более читабельным:будет выводить:
что просмотр страницы будет:
Если вы действительно это имели в виду, вам нужно просто исправить одинарную кавычку с помощью цитаты "":
В противном случае, если вы хотите разделить текст, в наших примерах «Первая строка» и «Вторая строка» вы должны использовать HTML-код
<br />
:это выведет:
Также было бы более читабельным, если вы замените весь скрипт:
источник
First line Second line
- любой пробел, включая символы новой строки, будет сжиматься до одного символа пробела в отображаемом выводе. Кроме того,</br>
все, кроме действительного HTML.w3school предлагает этот способ:
с помощью этой функции вы можете сделать это .. я пробовал другие способы, которые сказали выше, но они не помогут мне ..
источник
nl2br()
функция преобразует символы новой строки в<br />
тег HTML. Это может быть полезно для создания новой строки на страницах браузера, но не новой строки в текстовых файлах или JavaScript или для печати на экране или в консоли.По какой-то причине в каждом посте, спрашивающем о переводе новой строки в PHP, не упоминается случай, когда простая вставка новой строки в строки в одинарных кавычках будет делать именно то, что вы думаете:
пример 1
Пример 1 явно не печатает желаемый результат, однако, хотя это правда, что вы не можете экранировать символ новой строки в одинарных кавычках, вы можете иметь один:
пример 2
Пример 2 имеет точно желаемое поведение. К сожалению, добавленная новая строка зависит от операционной системы. Обычно это не проблема, поскольку веб-браузеры / серверы правильно интерпретируют новую строку, будь то \ r, \ r \ n или \ n.
Очевидно, что это решение не идеально, если вы планируете распространять файл с помощью других средств, а не через веб-браузер и на несколько операционных систем. В этом случае вы должны увидеть один из других ответов.
примечание: с помощью многофункционального текстового редактора вы сможете вставить новую строку в виде двоичных символов, которые представляют новую строку в операционной системе, отличной от той, которая редактирует файл. Если ничего не помогает, достаточно использовать шестнадцатеричный редактор для вставки двоичного символа ascii.
источник
Используйте PHP nl2br, чтобы получить новые строки в текстовой строке.
источник
nl2br
Функция преобразует символы новой строки в<br />
HTML - тег. Если строка не содержит символа новой строки, эта функция ничего не сделает! Более того, вопрос не в том, чтобы разбить строку в абзаце в HTML. Это про символ новой строки !Я также пробовал эту комбинацию в одинарных и двойных кавычках. Но никто не работал. Вместо использования
\n
лучше использовать<br/>
в двойных кавычках. Нравится..источник
Используйте chr (13) для возврата каретки и chr (10) для новой строки
источник
Для любых утверждений эха, я всегда использую
<br>
внутри двойных кавычек.источник
У меня ничего не получалось.
PHP_EOL
. "\r\n";
Работает для меня:
источник
источник