Вы захотите изучить функцию nl2br () вместе с trim () .
. nl2br()
вставит <br />
передсимвол новой строки (\n
) и trim()
удаляют любые заканчивающиеся \n
или пробельные символы.
$text = trim($_POST['textareaname']); // remove the last \n or whitespace character
$text = nl2br($text); // insert <br /> before \n
Это должно делать то, что вы хотите.
ОБНОВЛЕНИЕ
Причина, по которой следующий код не будет работать, заключается в том, что для распознавания \n
он должен быть внутри двойных кавычек, так как двойные кавычки анализируютданные внутри них, где одинарные кавычки воспринимаются буквально, IE "\n"
$text = str_replace('\n', '<br />', $text);
Чтобы исправить это, было бы:
$text = str_replace("\n", '<br />', $text);
Но все же лучше использоватьвстроенная функция nl2br()
, PHP предоставляет.
РЕДАКТИРОВАТЬ
Извините, я подумал, что первый вопрос был таким, чтобы вы могли добавить разрывы строк, действительно, это немного изменит ответ, как и любой тип explode()
удалит разрывы строк, но вот оно:
$text = trim($_POST['textareaname']);
$textAr = explode("\n", $text);
$textAr = array_filter($textAr, 'trim'); // remove any extra \r characters left behind
foreach ($textAr as $line) {
// processing here.
}
Если вы сделаете это таким образом, вам нужно будет добавить <br />
в конец строки передобработка выполняется самостоятельно, так как функция explode()
удалит символы \n
.
Добавлены array_filter()
к trim()
для любых дополнительных \r
символов, которые могли задерживаться.