Захват новой строки из текстового поля ввода

#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 );