Ich habe ein Formular mit einem Textbereich und möchte die vom Benutzer bei der Ausgabe des Inhalts eingegebenen Zeilenumbrüche beibehalten.
Zum Beispiel, wenn ich im Textbereich schreibe:
Hier ist ein Satz. Hier ist noch einer. hier ist noch einer.
Dies ist ein neuer Absatz. Hier ist ein neuer Satz. Hier ist noch einer.
Ich möchte die gleiche Ausgabe und nicht :
Hier ist ein Satz. Hier ist noch einer. hier ist noch einer. Dies ist ein neuer Absatz. Hier ist ein neuer Satz. Hier ist noch einer.
Wie kann ich Zeilenumbrüche beibehalten?
quelle
Die vom Benutzer eingegebenen Zeilenumbrüche bleiben erhalten, weder HTML noch PHP lassen einfach etwas fallen oder ändern etwas. Das HTML-Markup verwendet jedoch beim Rendern zur Visualisierung eine andere Methode zum Codieren von Zeilenumbrüchen. Dafür gibt es sehr gute Gründe. Sie müssen also die vorhandenen Zeilenumbrüche in Zeilenumbrüche im HTML-Stil "übersetzen".
Wie das geht, hängt von der Umgebung ab, in der Sie arbeiten. In der Regel müssen Sie Zeilenumbruch Codes wie übersetzen
\n
zu<br>
Tags. Diephp
Skriptsprache bietet hierfür beispielsweise eine Funktion:nl2br()
Beachten Sie jedoch Folgendes: Dies gilt nur, wenn Sie den Text als HTML-Markup rendern . Dies gilt nicht , wenn Sie den Text erneut in einen Textbereich innerhalb eines Formulars ausgeben, um ihn beispielsweise ändern zu können. In diesem Fall müssen Sie die ursprünglichen Zeilenumbrüche so beibehalten, wie sie empfangen wurden.
Was Sie normalerweise tun, ist: Sie speichern die unveränderte Texteingabe als empfangen. Wenn Sie diesen Text erneut an einen Client ausgeben, beispielsweise nachdem Sie ihn aus einer Datenbank gelesen haben, in der Sie ihn zuvor gespeichert haben, wissen Sie, wie der Text dargestellt wird. In diesem Fall übersetzen Sie die vorhandenen Zeilenumbrüche oder lassen sie unverändert.
Sie können auch unveränderten Text mit Zeilenumbrüchen durch
<pre>...</pre>
Tags codieren. Markieren Sie sie daher als vorformatiert. Dies geschieht beispielsweise beim Anzeigen von Quellcode auf HTML-Seiten.quelle
Du kannst tun:
white-space: pre-wrap; overflow-wrap: break-word;
quelle
Sie behalten die Ausgabe im Textbereich bei. Sie würden eine Eingabe als Zeichenfolgenausgabe erhalten,
string(write to file)
die der Eingabezeichenfolge Textbereich hinzufügt.for eg. <?php $txt = $_POST["inputstr"]; $txt1 = "<textarea>". $txt ."</textarea>"; $file = fopen("file.html","a+"); fwrite($file, $txt1); fclose($file); ?>
quelle