Bei Ausgaben mittels echo() werden nicht automatisch Zeilenumbrüche erzeugt:
Stattdessen ist es notwendig, diese manuell zu setzen. Dazu wird die Schreibweise „\n” verwendet, was so viel wie „new line” heißt. Obwohl zwei Zeichen eingetippt werden, wird es automatisch in ein einzelnes neue-Zeile-Zeichen umgewandelt. Dabei ist zu beachten, dass diese Umwandlung von echo() nur dann durchgeführt wird, wenn der String von doppelten Anführungszeichen umgeben ist, da bei einfachen Anführungszeichen der Inhalt grundsätzlich nicht geparset wird (daher werden z.B. auch Variablen nicht automatisch ersetzt).
Um bei Verwendung von einfachen Anführungszeichen dennoch Zeilenumbrüche darstellen zu können, müssen diese von doppelten Anführungszeichen umgeben sein und mit ersterem String verknüpft werden:
Will man statt einer neuen Zeile tatsächlich „\n” (also einen Schrägstrich und dann ein n) ausgeben, dann können dafür einfache Anführungszeichen verwendet werden, oder man escapet das neue-Zeile-Zeichen:
Zeilenumbrüche, die per \n erzeugt werden, werden von Browsern nur dann angezeigt, wenn man den Quelltext öffnet. Beim Ansehen der generierten Seite werden sie ignoriert. Das liegt daran, dass die Browser standardmäßig versuchen, HTML darzustellen und in HTML werden Zeilenumbrüche durch „\n” nicht beachtet. Stattdessen gibt es ein eigenes Tag zum Erzeugen von Zeilenumbrüchen, nämlich „<br>” (HTML4, HTML5) oder „<br />” (XHTML):
PHP-Code
<?php echo('A'); echo('B'); echo('C'); ?>
Ausgabe
ABC
Stattdessen ist es notwendig, diese manuell zu setzen. Dazu wird die Schreibweise „\n” verwendet, was so viel wie „new line” heißt. Obwohl zwei Zeichen eingetippt werden, wird es automatisch in ein einzelnes neue-Zeile-Zeichen umgewandelt. Dabei ist zu beachten, dass diese Umwandlung von echo() nur dann durchgeführt wird, wenn der String von doppelten Anführungszeichen umgeben ist, da bei einfachen Anführungszeichen der Inhalt grundsätzlich nicht geparset wird (daher werden z.B. auch Variablen nicht automatisch ersetzt).
PHP-Code
<?php // Zeilenumbrueche koennen mittels \n erzeugt werden. // Dabei muss \n in doppelten Anfuehrungszeichen stehen, // in einfachen Anfuehrungszeichen wird es nicht beachtet echo("Das ist ein Zeilenumbruch: \n"); echo('Dieser Zeilenumbruch wird nicht beachtet: \n'); echo("(Das steht nicht in einer neuen Zeile.)\n"); // Zeilenumbrüche dürfen in jeder String-Variable platziert werden. // echo() wird nicht zwangsweise benötigt, um sie auszugeben. $var = "A\nB\nC"; var_dump($var); ?>
Ausgabe
Das ist ein Zeilenumbruch: Dieser Zeilenumbruch wird nicht beachtet: \n(Das steht nicht in einer neuen Zeile.) string(5) "A B C"
Um bei Verwendung von einfachen Anführungszeichen dennoch Zeilenumbrüche darstellen zu können, müssen diese von doppelten Anführungszeichen umgeben sein und mit ersterem String verknüpft werden:
PHP-Code
<?php echo('Das erzeugt eine neue Zeile:'."\n"); echo('Neue Zeile!'); ?>
Ausgabe
Das erzeugt eine neue Zeile: Neue Zeile!
Will man statt einer neuen Zeile tatsächlich „\n” (also einen Schrägstrich und dann ein n) ausgeben, dann können dafür einfache Anführungszeichen verwendet werden, oder man escapet das neue-Zeile-Zeichen:
PHP-Code
<?php // mittels einfache Anführungszeichen echo('\n'); // mittels Escaping, dem \n wird also ein zusätzliches "\" vorangestellt echo("\\n"); ?>
Ausgabe
\n\n
Zeilenumbrüche, die per \n erzeugt werden, werden von Browsern nur dann angezeigt, wenn man den Quelltext öffnet. Beim Ansehen der generierten Seite werden sie ignoriert. Das liegt daran, dass die Browser standardmäßig versuchen, HTML darzustellen und in HTML werden Zeilenumbrüche durch „\n” nicht beachtet. Stattdessen gibt es ein eigenes Tag zum Erzeugen von Zeilenumbrüchen, nämlich „<br>” (HTML4, HTML5) oder „<br />” (XHTML):
PHP-Code
<?php echo("(1) Dieser Zeilenumbruch wird nur im Quelltext eines Browsers angezeigt: \n"); echo("(2) Dieser Zeilenumbruch wird vom Browser dargestellt, erzeugt im Quelltext aber keinen Zeilenumbruch: <br />"); echo("(3) Nachfolgendes erzeugt in beiden Fällen einen Zeilenumbruch:<br />\n"); ?>
Quelltext
(1) Dieser Zeilenumbruch wird nur im Quelltext eines Browsers angezeigt: (2) Dieser Zeilenumbruch wird vom Browser dargestellt, erzeugt im Quelltext aber keinen Zeilenumbruch: <br />(3) Nachfolgendes erzeugt in beiden Fällen einen Zeilenumbruch:<br />
Angezeigt vom Browser
(1) Dieser Zeilenumbruch wird nur im Quelltext eines Browsers angezeigt: (2) Dieser Zeilenumbruch wird vom Browser dargestellt, erzeugt im Quelltext aber keinen Zeilenumbruch: (3) Nachfolgendes erzeugt in beiden Fällen einen Zeilenumbruch:
Kommentare (4)
Von neu nach altWir bitten um ihr Verständnis.
<?php
echo " <br /> ";
echo "Hier wird ein Zeilenumbruch erzeugt <br /> ";
?>
Ich möchte gerne mit PHP einen Zeilenumbruch erzwingen wie <br />
Das bekomme ich leider nicht hin.
Wie oben beschrieben, funktioniert das nicht.
Mit JS kein Problem
<style>
n1 {margin-top: 1px; display: block;}
</style>
<script>
document.createElement('n1');
</script>
Im Body: <n1 />
Hintergrund:
Ich möchte vermeiden, dass im Quellcode etliche <br />'s zu sehen sind wenn
ein PHP Script eingebunden wurde.
Irgend eine Idee?
Gruss Chrissie