PHP-lernen 6: Escape-Zeichen

Mit dem Escape-Zeichen (Backslash) \ kann man in PHP Sonderzeichen maskieren und den ausgegebenen (X)HTML-Quelltext “verschönern”.

Schauen wir uns mal folgendes Beispiel an:

<?php
echo "<p>Wie geht es dir?<br />Mir geht es gut.</p>";
?>

Die Ausgabe würde so aussehen:

Wie geht es dir?
Mir geht es gut.

Soweit alles in Ordnung. Aber wenn man sich den HTML-Quelltext anschaut, wird man bemerken das dort nach <br /> keine neue Zeile anfängt. Momentan ist das noch nicht schlimm, aber bei einem längeren Script evtl. schon. Will man auch im Quelltext eine neue Zeile haben muss das Beispiel so aussehen:

<?php
echo "<p>Wie geht es dir?<br />\nMir geht es gut.</p>";
?>

Das \n bewirkt, daß im Quelltext eine neue Zeile entsteht.

Ein weiteres Beispiel:

<?php
echo "Ich versuche "PHP" zu lernen";
?>

Braucht man garnicht auszutesten. Es wird eine Fehlermeldung geben (Parse Error). Warum? Die sog. Anführungszeichen (Anmerkung: ja, ich weiß das es typografisch gesehen es falsch ist " als Anführungszeichen zu benennen.) signalisieren Anfang und Ende einer Zeichenkette. Danach folgt ein Semikolon als Ende der Anweisung. Aber in diesem Beispiel kommen mitten im String Anführungszeichen vor und es kommt zu einer Fehlermeldung. Es gibt hier mehrere Wege wie man sowas umschiffen kann. Mann könnte folgendes verwenden:

<?php
echo "Ich versuche 'PHP' zu lernen";
?>

oder

<?php
echo 'Ich versuche "PHP" zu lernen';
?>

oder in dem man die sog. Anführungszeichen im String mit dem Escape Zeichen maskiert:

<?php
echo "Ich versuche \"PHP\" zu lernen";
?>

Eine weitere Möglichkeit in diesem Fall wäre es die richtigen Anführungszeichen zu nutzen („ und ”) oder das Entity von " (&quot;). Das Escape-Zeichen maskiert auch einige andere Sonderzeichen die bei der Ausgabe Probleme bereiten könnten bzw. garnicht ausgegeben werden können z. B. das $-Zeichen (signalisiert eine Variable).

Hier eine Auflistung für den Einsatz des Escape-Zeichens:

Zeichen Effekt
\n Neue Zeile im Quelltext
\r Neuer Absatz im Quelltext
\t Tabulator, einrücken im Quelltext
\" maskiert "
\$ maskiert $
\\ maskiert \

Wir arbeiten seit 20 Jahren mit WordPress und bieten diverse Dienst­leistungen rund um das System an. Kontaktiere uns für weitere Informationen oder für ein Angebot.

Verwandte Beiträge:

  • Keine verwandten Beiträge

2 Kommentare

  1. Vielleicht wäre es hilfreich zu erwähnen, dass das n, t usw. Escpaing nur innerhalb von “” benutzt werden kann, und nicht innerhalb von ”.

    Also bei
    echo ‘umbruch: n’;
    echo “umbruch: n”;

    würde nur letzteres funktionieren.

    Genau können $variablen innerhalb von ” nicht geparsed werden. Der Vorteil der Verwendung von ” bei Statements, Funktionen et al ist jedoch ein (geringer) Performance-Gewinn, da der Parser halt eben innerhalb dieses Strings nicht nach Sonderzeichen sucht. Will man also nur html-text o.ä. ausgeben, sollte man sich eher angewöhnen ” standardmäßig zu nutzen, und “” nur dann, wenn es auch benötigt wird.

    Mein Senf dazu. 🙂 Ansonsten wollte ich Dein PHP-Tutorial mal loben, ich denke dass so eine persönliche Einführung einigen sehr helfen kann; ich hab’s einigen Newbiews jedenfalls ans Herz gelegt, dran zu bleiben. 🙂

  2. […] Das Escape-Zeichen \t bewirkt, dass der Cursor, bevor er die Start-Markierung setzt, zuerst eine Tabulator-Breite nach rechts "springt", dadurch wird eine Einrückung für die Listenelemente im Quelltext erreicht. Das Escape-Zeichen \n bewirkt einen Zeilenumbruch im Quelltext. Weitere Escape-Zeichen kan man hier sehen. Die Escape-Zeichen sind in Javascript und PHP die gleichen. […]

Kommentare sind geschlossen.