PHP \ n escape-символ - PullRequest
       6

PHP \ n escape-символ

0 голосов
/ 15 марта 2011

Почему процесс php не распознает escape-символ \ n в строке этого оператора:

echo "testing \ n testing2";

почему

Ответы [ 7 ]

5 голосов
/ 15 марта 2011

Я собираюсь выйти на конечность и предположить, что вы написали такую ​​страницу:

<?php

echo " testing \n testing2";

?>

И вывод HTML выглядит так:

testing testing2

Это потому, что HTML сокращает пробелы. Вам нужно будет использовать некоторые элементы HTML, чтобы вывод выглядел так, как вы думаете:

echo " testing <br /> testing2";
3 голосов
/ 15 марта 2011

Символ конца строки ничего не означает в HTML, что должно быть выводом PHP.

Следующая строка в HTML - это тег <br/>, поэтому вы должны вывести следующее:

echo "<br/>";

Вы также можете изменить все вхождения \n в строке на <br/> с помощью функции nl2br, как заметил мой друг.

3 голосов
/ 15 марта 2011

При использовании в контексте HTML разрывы строк \n не будут видны, за исключением исходного кода HTML, поскольку HTML использует <br /> для разрывов строк. Чтобы конвертировать их, используйте nl2br().

Вы также должны быть осторожны, как ваша строка цитируется. Escape-последовательности, такие как \n, анализируются только в двойных кавычках "strings". В одинарных кавычках 'strings' они не анализируются.

2 голосов
/ 15 марта 2011

Да, посмотрите в исходном коде.Если вы хотите увидеть его в браузере, используйте

echo nl2br(" testing \n testing2");

Браузер игнорирует игнорирует лишние пробелы (включая новую строку) и преобразует его в пробел.Вам нужно HTML-теги (например, <br />), чтобы разрывать строки вручную.

1 голос
/ 03 сентября 2012

Потому что ваш навигатор думает, что вы хотите отобразить HTML тогда как вы хотите отображать простой текст. Просто добавьте заголовок, объясняющий, какой тип контента вы хотите отобразить:

header('Content-Type: text/plain');
echo " testing \n testing2";
1 голос
/ 15 марта 2011

Если вы перейдете к «View Source» в вашем браузере, то увидите, что он вставил разрыв строки.Однако в HTML разрыв строки интерпретируется как пробел и не начинается с новой строки.Как говорит @Czechnology, вы хотите использовать nl2br для замены новых строк на разрывы строк HTML (<br>).

Также не забывайте принимать лучший ответ, когда задаете вопрос.

0 голосов
/ 27 мая 2013
$teststring = ;
echo nl2br($teststring);

и введите все, что вы хотите в $teststring

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...