Захват символов разрыва строки (новая строка, перевод строки) в текстовой области
-
08-07-2019 - |
Вопрос
У меня есть форма с <textarea>
и я хочу зафиксировать любые разрывы строк в этой текстовой области на стороне сервера и заменить их на <br/>
.
Это возможно?
Я попробовал установить white-space:pre
на textarea
CSS, но этого все еще недостаточно.
Решение
Просмотрите функцию nl2br()
. Он должен делать именно то, что вы хотите.
Другие советы
nl2br()
существует именно для этого:
Однако эта функция добавляет теги br, но на самом деле не удаляет новые строки - обычно это не проблема, но если вы хотите полностью удалить их и перехватить возврат каретки, вам следует использовать Я думаю, что str_replace будет немного быстрее, но я не тестировал; или str_replace
или preg_replace
а> р>
$val = str_replace( array("\n","\r","\r\n"), '<br />', $val );
$val = preg_replace( "#\n|\r|\r\n#", '<br />', $val );
Если вы собираетесь использовать str_replace
или preg_replace
, вам, вероятно, следует разместить "\r\n"
в начале массива, иначе \r\n
последовательность будет переведена на два <br/>
теги (поскольку \r
будет сопоставлено, а затем \n
будет совпадать).
например:
$val = str_replace( array("\r\n", "\n","\r"), '<br />', $val );
или
$val = preg_replace( "#\r\n|\n|\r#", '<br />', $val );
Для тех, кто хочет получить ответ, который не зависит от nl2br()
:
$newList = ereg_replace( "\n",'|', $_POST['theTextareaContents']);
или (в данном случае):
$newList = ereg_replace( "\n",'<br/>', $_POST['theTextareaContents']);
<Ч>
Сторона PHP: от строки Textarea до строки PHP
$list = str_replace('|', ' ', $r['db_field_name']);
Сторона PHP: строка PHP возвращается к строке TextArea:
<*>