Sie werden zusammen mit dem trim() in die nl2br() Funktion zu suchen.
Die nl2br()
wird <br />
vor dem Zeilenende-Zeichen (\n
) einzufügen und die trim()
wird alle endend \n
oder Leerzeichen entfernen.
$text = trim($_POST['textareaname']); // remove the last \n or whitespace character
$text = nl2br($text); // insert <br /> before \n
Das sollte tun, was Sie wollen.
UPDATE
Der Grund der folgende Code wird nicht funktionieren, weil damit \n
anerkannt werden, es in doppelten Anführungszeichen sein muss, da doppelte Anführungszeichen in sie Daten zu analysieren, wo als einfache Anführungszeichen nehmen es wörtlich, IE "\n"
$text = str_replace('\n', '<br />', $text);
es zu beheben, wäre es:
$text = str_replace("\n", '<br />', $text);
Aber es ist immer noch besser, die integrierte nl2br()
-Funktion zu verwenden, die PHP bietet.
EDIT
Sorry, dachte ich, die erste Frage war, so konnte man die Zeilenumbrüche in, fügen Sie in der Tat wird dies die Antwort ziemlich viel ändern, da anytype von explode()
werden die Zeilenumbrüche entfernen, aber hier ist:
$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.
}
Wenn Sie es auf diese Weise tun, müssen Sie die <br />
auf das Ende der Zeile vor der Verarbeitung auf eigene Faust getan wird anhängen, da die explode()
Funktion die \n
Zeichen entfernen.
Hinzugefügt array_filter()
zu trim()
von zusätzlichen \r
Zeichen, die möglicherweise verweilten.
möglich Duplikat [How Zeilenumbrüche (keine Zeichen!) aus der Zeichenfolge entfernen?] (http://stackoverflow.com/questions/10757671/how-to-remove-line-breaks-no-characters-from-the-string) – kenorb