Capture-Zeilenumbrüche (Zeilenende, Zeilenvorschub) Zeichen in einem Textfeld
-
08-07-2019 - |
Frage
Ich habe ein Formular mit einem <textarea>
und ich möchte in diesem Textfeld auf der Server-Seite alle Zeilenumbrüche erfassen, und ersetzen Sie sie mit einem <br/>
.
Ist das möglich?
Ich habe versucht Einstellung white-space:pre
auf dem textarea
CSS, aber es ist noch nicht genug.
Lösung
Haben Sie einen Blick auf die nl2br()
Funktion. Es sollte genau das tun, was Sie wollen.
Andere Tipps
Die nl2br()
Funktion zu tun gibt es genau das:
Allerdings, fügt die Funktion Tags br entfernt aber nicht wirklich die neuen Linien - das ist in der Regel kein Problem, aber wenn man sie vollständig wollen abzustreifen und fangen Wagen zurückkehrt auch, sollten Sie eine str_replace
oder preg_replace
ich denke, str_replace würde etwas schneller sein, aber ich habe nicht gebenchmarkt;
$val = str_replace( array("\n","\r","\r\n"), '<br />', $val );
oder
$val = preg_replace( "#\n|\r|\r\n#", '<br />', $val );
Wenn Sie vorhaben, str_replace
oder preg_replace
zu verwenden, sollten Sie vielleicht die "\r\n"
am Anfang des Arrays, da er andernfalls eine \r\n
Sequenz in zwei <br/>
Tags übersetzt werden (da die \r
abgestimmt wird, und dann die \n
abgestimmt werden).
Beispiel:
$val = str_replace( array("\r\n", "\n","\r"), '<br />', $val );
oder
$val = preg_replace( "#\r\n|\n|\r#", '<br />', $val );
Für die, eine Antwort zu wollen, die nicht auf nl2br()
angewiesen ist:
$newList = ereg_replace( "\n",'|', $_POST['theTextareaContents']);
oder (in diesem Fall):
$newList = ereg_replace( "\n",'<br/>', $_POST['theTextareaContents']);
PHP Seite: von Textarea String in PHP-String
$newList = ereg_replace( "\n",'|', $_POST['theTextareaContents']);
PHP Seite: PHP-String zurück zu TextArea- string:
$list = str_replace('|', ' ', $r['db_field_name']);