#php #html
#php #HTML
Вопрос:
У меня есть форма текстовой области в моем html. Если пользователь нажимает enter между двумя предложениями, эти данные должны быть перенесены на мой PHP.
В настоящее время, если пользователь вводит:
Apple
Google
MS
и мой PHP-код:
$str = $_POST["field"];
echo $str;
Я получаю
Apple Google MS
в качестве выходных данных. Я хочу, чтобы вывод был таким
Apple
Google
MS
что мне делать?
Ответ №1:
Попробуйте nl2br()
вместо:
echo nl2br($str);
Комментарии:
1. Еще лучше. Не знал, что существует встроенная функция, предназначенная для этого.
Ответ №2:
Новые строки должны быть включены в строку, которую вы получаете из $_POST["field"]
. Однако, если вы затем используете эту строку в качестве выходных данных в HTML, новые строки будут обрабатываться как пробелы. Для принудительного переноса строк используйте preg_replace("/n/", "<br />", $str)
.
Комментарии:
1. Этот preg завершится ошибкой (без разделителя), также почему бы просто не
str_replace()
?2. True — исправлено. И ваш ответ в любом случае лучше. Однако объяснение причины может помочь лучше понять исправление.
Ответ №3:
Это потому, что когда вы повторяете ее, она отображается как HTML. n
Символ интерпретируется как пробел. Если вы просмотрите исходный код, вы увидите желаемый результат.
Для преобразования n
в <br>
используйте:
echo nl2br( $str );