После того, как вы позвоните htmlentities()
, позвоните nl2br()
. Веб-браузер игнорирует простые символы новой строки, поэтому вам необходимо преобразовать их в <br />
элементы, чтобы они отображались.
nl2br
- вставляет разрывы строки HTML перед всеми новыми строками в строке
Описание
string nl2br ( string $string [, bool $is_xhtml= true ] )
Возвращает строку с <br />
или <br>
, вставленными перед всеми переводами строки.
Например:
echo nl2br(htmlentities($input));
Чтобы показывать только двойные новые строки и игнорировать одиночные, вместо этого можно использовать более сложную функцию замены строк, preg_replace
:
echo preg_replace('/\n\s*\n/', "<br />\n<br />\n", htmlentities($input));
Здесь '/\n\s*\n/'
соответствует новой строке, за которой следует любое количество пробелов, а затем еще одна новая строка. Он заменяет любую такую подстроку двумя <br />
элементами. Одиночные символы новой строки игнорируются. Это также хорошо, потому что он игнорирует посторонние пробелы и вкладки, которые невидимы, например, если пользователь напечатал это:
Это абзац. \n
Это довольно короткий. \n
<space><tab>\n
Вот еще один абзац. \n
Это тоже коротко.