Hier im Forum bekommt ihr bei euren fragen schnelle hilfe.Hier geht es rund um das Web SeitenProgrammieren.Alles rund ums Javascript,Html,Php,Css und Sql.Auf fast allen Fragen haben wir eine Antwort.
Der Soforthilfe-chat verspricht das ,was sein Name sagt. Hier sind Leute Online die sofort ihre hilfe anbieten.Seht in der OnlineListe nach und wenn einer Online ist werdet ihr auch antwort bekommen. Admine ,Moderatoren und Helfer sind unsere Spezialisten in Sachen Web Programierung
71 Unwetterwarnungen in Deutschland
Die Datenbank wurde zuletzt am 02.08.2020 17:34:28 aktualiesiert
71

Zeilenumbrüche mit echo

Wie genau Zeilenumbrüche bei Ausgaben von echo() erzeugt werden.

Bei Ausgaben mittels echo() werden nicht automatisch Zeilenumbrüche erzeugt:

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: