it-swarm.com.de

Zeilenumbrüche in Textbereichen beibehalten

Ich habe ein Formular mit einem Textbereich und möchte die vom Benutzer eingegebenen Zeilenumbrüche bei der Ausgabe des Inhalts 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 neues Absatz. Hier ist ein neuer Satz. Hier ist noch einer.

Wie kann ich Zeilenumbrüche beibehalten?

27
Simon M.

Im Allgemeinen müssen Sie nur hinzufügen

  • white-space: pre-line; Whitespace auf einzelne Whitespaces getrimmt oder

  • white-space: pre-wrap; alle Leerzeichen erhalten

im Stil des Elements (CSS), wo der Text mit Zeilenumbrüchen dargestellt werden soll.

72
Vaidotas Pocius

Die vom Benutzer eingegebenen Zeilenumbrüche are werden beibehalten, weder html noch php löschen oder ändern nichts. HTML-Markup verwendet jedoch beim Rendern zur Visualisierung eine andere-Methode, um Zeilenumbrüche zu codieren. Dafür gibt es sehr gute Gründe. Sie müssen also die vorhandenen Zeilenumbrüche in HTML-Zeilenumbrüche "übersetzen". 

Wie das zu tun ist, hängt von der Umgebung ab, in der Sie arbeiten. Im Allgemeinen müssen Sie Zeilenumbruchscodes wie \n in <br>-Tags übersetzen. Die php-Skriptsprache bietet hierfür beispielsweise eine Funktion: nl2br()

Beachten Sie jedoch Folgendes: Dies gilt nur, wenn Rendering der Text als HTML-Markup ist. Dies gilt für nicht, wenn Sie den Text erneut in einem Textbereich innerhalb eines Formulars ausgeben, um ihn beispielsweise zu ändern. In diesem Fall müssen Sie die ursprünglichen Zeilenumbrüche genauso beibehalten, wie sie empfangen wurden. 

Normalerweise machen Sie also Folgendes: Sie speichern die unveränderte Texteingabe wie erhalten. Wenn Sie diesen Text erneut an einen Client ausgeben, zum Beispiel nachdem er ihn aus einer Datenbank gelesen hat, in der Sie ihn zuvor gespeichert haben, wissen Sie, wie der Text dargestellt wird. Das ist, wenn Sie die vorhandenen Zeilenumbrüche entweder übersetzen oder belassen. 

Sie codieren könnte auch unveränderten Text, der Zeilenumbrüche enthält, durch <pre>...</pre>-Tags. Markieren Sie sie so, dass sie als vorformatiert dargestellt werden. Dies geschieht beispielsweise bei der Anzeige von Quellcode in HTML-Seiten. 

5
arkascha

Wenn Sie die Wagenrücklaufzeichen aus einer Java-Zeichenfolge in einer Datei behalten möchten. Ersetzen Sie einfach jedes Unterbrechungszeilenzeichen (das in Java als:\n erkannt wird) durch folgende Anweisung: TempQuery = tempQuery.replaceAll ("\ n", "\ r\n");

Hier ist ein Codebeispiel,

    // Action Listener
    orderButton.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent ae) {
            // When Execute button is pressed
            String tempQuery = textArea.getText();
            tempQuery = tempQuery.replaceAll("\n", "\r\n");
            try (PrintStream out = new PrintStream(new FileOutputStream("C:/Temp/tempQuery.html"))) {
                out.print(tempQuery);
            } catch (FileNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            System.out.println(tempQuery);
        }

    });
0
QA Specialist

Sie behalten die Ausgabe im Textbereich bei. Sie würden eine Eingabe als Zeichenfolge erhalten, die string(write to file) diese Zeichenfolge hinzufügt und der Eingabefolge Textbereich hinzufügt.

for eg.
<?php
$txt = $_POST["inputstr"];
$txt1 = "<textarea>". $txt ."</textarea>";
$file = fopen("file.html","a+");
fwrite($file, $txt1);
fclose($file);
?>
0
awadhesh