Что касается атрибута wrap
, он вам не нужен для того, чего вы пытаетесь достичь.Как описано в спецификации HTML 5.2 , разрывы строк в тексте сохраняются при использовании либо атрибутов soft
или hard
.
Опция hard
требуется только в том случае, если вы хотите limit длина каждой строки ввода.Используйте эту опцию, чтобы принудительно вводить дополнительные разрывы строк везде, где ваш ввод естественным образом переносится (т. Е. Там, где строка длиннее значения, установленного в cols
).
Например, если у меня есть текстовая область, установленная на cols="20" wrap="hard"
, и я ввожу текст:
This is a long string that will exceed the number of cols in this textarea
Тогда отправленное значение станет:
This is a long
string that will
exceed the number of
cols in this
textarea
Если я правильно понял, вы хотите сохранить только те разрывы строк, которые были намеренно введены пользователем;они будут записаны с использованием опции soft
по умолчанию.
Что касается отправленного текста , обратите внимание, что escape-символы \r\n
не будут отображаться в опубликованном значении, символы новой строкинаходятся в той же интерпретируемой форме, в которой они находились, когда вы нажимали клавишу «enter» на клавиатуре.
Даже если вы не можете видеть escape-символы, символы новой строки все же существуют и могут быть найдены и обработаныPHP.Как вы предложили, nl2br
может использоваться для преобразования новых строк в элементы HTML-разрыва.
Если вам действительно нужно преобразовать символы новой строки в соответствующие им escape-символы, возможно, перед сохранением значения, существует несколько способов манипулирования строкой.Несколько примеров:
$escaped_newlines = str_replace("\r\n", '\r\n', $_POST['reading_text']);
$escaped_newlines = preg_replace('/\r\n/', '\r\n', $_POST['reading_text']);
(Для дальнейшего чтения есть полезный ответ SO о двойных / одинарных кавычках и интерпретации новых строк )
Наконец, как вы в настоящее время?просмотр содержимого $_POST
?Если вы выводите содержимое var_dump
непосредственно в HTML, то вам нужно будет обернуть вывод в теги
, чтобы увидеть разрывы строк в результирующем HTML.Более того, вывод в файл журнала, так что вам не нужно учитывать такие проблемы рендеринга.