5 Stimmen

Was nützt eine neue Linie?

Ich verstehe das nicht ganz: Wozu braucht man ein neues Schriftzeichen?

Wenn ich das tue:

<?php
echo "This is a test. \n";
echo "This is another test.";
?> 

Der Code führt dazu, dass beide Sätze in der gleichen Zeile stehen. Warum funktioniert der \n warum der zweite Satz in der zweiten Zeile steht?

Die Sätze stehen jeweils in einer eigenen Zeile, wenn ich das tue:

<?php
echo "This is a test. <br>";
echo "This is another test.";
?>

Aber ich habe auch schon Leute gesehen, die das getan haben:

<?php
echo "This is a test. <br>\n";
echo "This is another test.";
?> 

Dies führt im Wesentlichen zu der gleichen Ausgabe wie der zweite Codeschnipsel. Kann mir das jemand erklären?

38voto

Paul Dixon Punkte 286600

El HTML-Standard behandelt einen Zeilenumbruch als ein weiteres Leerzeichen, weshalb die <br> Tag existiert. Beachten Sie jedoch, dass ein Zeilenumbruch auch innerhalb einer <pre> Tag, oder ein Element mit der Leerzeichen:vor CSS-Stil.

Das dritte Beispiel dient nur dazu, "hübsches" HTML zu machen: Es macht es einfacher, den "Quelltext" anzusehen und mit dem Auge zu überprüfen. Andernfalls hätten Sie eine lange HTML-Zeichenkette.

9voto

markus Punkte 39397

Wie Sie festgestellt haben, gibt es verschiedene Möglichkeiten, eine neue Zeile zu erstellen.

<br />

Dies ist kein Zeichen für eine neue Zeile, sondern ein XHTML Tag, das heißt, es funktioniert in XHTML. Richtig gesprochen ist es kein Zeilenumbruch, aber der Tag sorgt dafür, dass einer eingefügt wird = er erzwingt einen Zeilenumbruch. Der schließende Tag ist obligatorisch.

XHTML-Spezifikationen


<br>

Dies ist ein HTML-Tag, der einen Zeilenumbruch erzwingt. Der schließende Tag ist verboten.

HTML 4.1-Spezifikationen


\n

ist eine Escape-Sequenz für das ASCII-Zeilenvorschubzeichen LF. Ein häufiges Problem ist die Verwendung von ' \n ', wenn die Kommunikation über ein Internet-Protokoll erfolgt, das die Verwendung von ASCII CR+LF für das Zeilenende vorschreibt. Schreiben von ' \n ' in einen Textmodus-Stream funktioniert auf Windows-Systemen korrekt, erzeugt aber unter Unix nur LF und auf exotischeren Systemen etwas völlig anderes. Die Verwendung von " \r\n " im Binärmodus ist etwas besser, da es auf vielen ASCII-kompatiblen Systemen funktioniert, aber im allgemeinen Fall versagt es trotzdem. Eine Möglichkeit besteht darin, den Binärmodus zu verwenden und die numerischen Werte der Steuersequenz direkt anzugeben, " \x0D\x0A ".

mehr lesen


PHP_EOL

ist eine php-Neuzeilenkonstante, die durch die korrekte systemabhängige Neuzeile ersetzt wird.

Die Botschaft lautet also, alles an seinem Platz zu verwenden.

6voto

alphadogg Punkte 12400

<br> wird eine neue Zeile in der Ansicht des Benutzers angezeigt; \n gibt Ihnen eine neue Zeile im Quellcode, d.h. die Ansicht des Entwicklers.

4voto

achinda99 Punkte 4890

Wenn die HTML-Datei gerendert wird, wird nur der " <br /> " macht die Bruchlinie sichtbar. Das Markup ist jedoch viel einfacher zu lesen, wenn " <br />\n " gedruckt, damit nicht alles in einer langen Zeile steht.

3voto

Techboy Punkte 3950

\n ist codebasiert

<br /> ist HTML-Tag-basiert

Es gibt einen klaren Unterschied zwischen den beiden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X