На PHP - как создать символ?

в PHP я пытаюсь создать символ новой строки:

echo $clientid;
echo ' ';
echo $lastname;
echo ' ';
echo '\r\n';

после этого я открываю созданный файл в блокноте, и он пишет новую строку буквально:

1 Вася Пупкин\р\н 1 Имярек\р\н 1 Имярек\р\н

Я пробовал много вариаций \r\n, но никто не работает. Почему строки превращаются в строки?

13 ответов


только строки с двойными кавычками интерпретировать escape-последовательности \r и \n как 0x0D и 0x0A соответственно, так что вы хотите:

"\r\n"

один процитировал строки, С другой стороны, знать только escape-последовательности \ и \'.

поэтому, если вы не объедините одну цитируемую строку с разрывом строки, сгенерированным в другом месте (e. г., использование строки с двойными кавычками "\r\n" или через chr функции chr(0x0D).chr(0x0A)), единственный другой способ сделать разрыв строки в одной цитируемой строке-буквально ввести ее в свой редактор:

$s = 'some text before the line break
some text after';

убедитесь, что ваш редактор для его параметров разрыва строки, Если вам требуется определенная последовательность символов (\r\n например).


для завершения независимой линии платформы вы можете использовать предопределенный PHP_EOL постоянный, например:

echo $clientid, ' ', $lastname, PHP_EOL;

команда "echo" в PHP отправляет вывод в браузер как необработанный html, поэтому, даже если в двойных кавычках браузер не будет разбирать его на две строки, потому что символ новой строки в HTML ничего не значит. Вот почему вам нужно либо использовать:

echo [output text]."<br>";

при использовании "echo" или вместо этого используйте fwrite...

fwrite([output text]."\n");

это выведет новую строку HTML вместо "\n".


используйте константу PHP_EOL, чтобы получить правильный символ независимо от платформы.

http://us3.php.net/manual/en/reserved.constants.php

простой пример использования:

<?php
$data = 'First line' . PHP_EOL .
        'Second line' . PHP_EOL .
        'Third line';

file_put_contents("filename.txt", $data);
?>

строки в двойные кавычки "" интерполировать, то есть они преобразуют экранированные символы в печатаемые символы.

строки в одинарные кавычки '' - самые настоящие, то есть они обрабатываются точно так же, как герои набираются.

вы можете иметь оба в одной строке:

echo '$clientid $lastname ' . "\r\n";
echo "$clientid $lastname \r\n";

выходы:

$clientid $lastname
1 John Doe

на самом деле \r\n для html-стороны вывода. С помощью этих символов вы можете просто создать новую строку в html-коде, чтобы сделать ее более читаемой:

echo "<html>One line \r\n Second line</html>";

вывод:

<html>First line
Second line</html>

что просмотр страницы будет:

First line Second line

если вы действительно имели в виду это, вы должны просто исправить одну цитату с "" цитатой:

echo "\r\n";

в противном случае, если вы хотите разделить текст, в нашем примере "первая строка" и "вторая строка" вы должны использовать html код:<br />:

First line<br />Second line

что будет на выходе:

First line
Second line

также было бы более читабельным, если вы замените весь скрипт:

echo "$clientid $lastname \r\n";

вы должны использовать это:

"\n"

вы также можете взглянуть на PHP EOL.


w3school предложил таким образом:

echo nl2br("One line.\n Another line.");

С помощью этой функции вы можете сделать это..я пробовал другие способы, которые сказали выше, но они не помогут мне..


используйте PHP nl2br для получения новых строк в текстовой строке..

$text = " Ману хороший мальчик.(Enter)он может хорошо кодировать.

echo nl2br ($text);

результат.

Ману-хороший мальчик.

Он хорошо кодирует.


по какой-то причине каждый пост, спрашивающий о побегах новой строки в PHP, не упоминает случай, когда просто вставка новой строки в строки с одинарными кавычками будет делать именно то, что вы думаете:

ex 1.

 echo 'foo\nbar';

Пример 1 явно не печатает желаемый результат, однако, хотя это правда, вы не можете избежать новой строки в одинарных кавычках, вы можете иметь один:

ex 2.

 echo 'foo
 bar';

Пример 2 имеет точно желаемое поведение. К сожалению вставляемая новая строка зависит от операционной системы. Обычно это не проблема, так как веб-браузеры / серверы правильно интерпретируют новую строку, будь то \r, \r\n или \n.

очевидно, что это решение не идеально, если вы планируете распространять файл через другие средства, а затем веб-браузер и несколько операционных систем. В этом случае вы должны увидеть один из других ответов.

Примечание: используя многофункциональный текстовый редактор, вы сможете вставить новую строку как двоичный символ(ы), представляющий новую строку в другой операционной системе, чем редактирующий файл. Если все остальное не удается, просто используя шестнадцатеричный редактор для вставки двоичного символа ascii.


используйте chr (13) для возврата каретки и chr (10) для новой строки

echo $clientid;
echo ' ';
echo $lastname;
echo ' ';
echo chr (13). chr (10);

Я также пробовал эту комбинацию как в одинарных, так и в двойных кавычках. Но ничего не получилось. Вместо использования \n лучше использовать <br/> в двойные кавычки. Вроде этого..

$variable = "and";
echo "part 1 $variable part 2<br/>";
echo "part 1 ".$variable." part 2";

для любых операторов echo я всегда использую <br> внутри двойных кавычек.