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


У меня есть форма текстовой области в моем html. Если пользователь нажмет ввод между 2 предложениями, эти данные должны быть перенесены на мой PHP.

В настоящее время, если пользователь вводит:

Apple
Google
MS

И мой PHP-код:

$str = $_POST["field"];

echo $str;

Я получаю

Apple Google MS 

В качестве вывода. Я хочу, чтобы вывод был таким

Apple
Google
MS

Что мне делать?

 19
Author: Tim Cooper, 2011-05-01

3 answers

Попробуйте nl2br() вместо этого:

echo nl2br($str);
 39
Author: Alix Axel, 2011-04-30 20:42:33

Новые строки должны быть включены в строку, которую вы получаете из $_POST["field"]. Однако, если вы затем используете эту строку в качестве вывода в HTML, новые строки будут обрабатываться как пробелы. Чтобы принудительно прервать линию, используйте preg_replace("/\n/", "<br />", $str).

 3
Author: Thilo, 2011-04-30 20:49:12

Это потому, что, когда вы повторяете его, он отображается в виде HTML. Символ \n интерпретируется как пробел. Если вы просмотрите источник, вы увидите желаемый результат.

Для преобразования \n в <br> используйте:

echo nl2br( $str );
 0
Author: Galen, 2011-04-30 20:44:34