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


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

echo $clientid;
echo ' ';
echo $lastname;
echo ' ';
echo 'rn';

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

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

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

13 329

13 ответов:

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

"\r\n"

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

поэтому, если вы не объедините строку с одинарными кавычками с разрывом строки, созданным в другом месте (например, используя строку с двойными кавычками "\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 отправляет вывод в браузер как raw html, поэтому даже если в двойных кавычках браузер не будет разбирать его на две строки, потому что символ новой строки в HTML ничего не значит. Вот почему вам нужно либо использовать:

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

при использовании "эхо", или вместо этого использовать 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> внутри двойных кавычек.