WordPress & Webwork

PHP-lernen 6: Escape-Zeichen

Escape-Zeichen, Sonderzeichen, Maskierungszeichen, Backslash

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 \

2 Reaktion(en)

  1. Garvin Hicking

    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. Pingback: Die Quicktags anpassen » Peruns Weblog - Webwork und Internet

Die Kommentare in diesem Beitrag sind geschlossen.

✉ WordPress-Newsletter ✉

Tipps und News als E-Mail in deinem Postfach? Dann abonniere einfach den ersten deutsch­sprachigen Word­Press-Newsletter:


Der Newsletter ist hinterher jederzeit abbestellbar.

Eintragen!