Wie Sonderzeichen " in echo maskieren (class="bla")
Kai W
- php
Hallo,
ich versuche gerade eine breadcrumb-Navigation mit PHP einzubinden. diese soll im Kopf-Navigationsteil erscheinen und eine eigene css-class besitzen.
Ungefaehr so:
<p class="breadcrumb">Sie sind hier: <a href="index.php">Startseite</a></p>
leider klappt mein im Netz zusammengesuchter Versuch mit special characters ('"') nicht.
<?php
echo "<p class= '"'breadcrumb '"';> Sie sind hier:" .$breadcrumb->show_breadcrumb(). "</p>";
?>
Ich vermute mal das Ganze ist trivial fuer jemanden der sich damit auskennt. Koennte mir jemand die Loesung wie man in der echo-Funktion Sonderzeichen maskiert kund tun ?
Vielen Dank!
Kai
Hallo,
<?php
echo "<p class= '"'breadcrumb '"';> Sie sind hier:" .$breadcrumb->show_breadcrumb(). "</p>";
?>Ich vermute mal das Ganze ist trivial fuer jemanden der sich damit auskennt. Koennte mir jemand die Loesung wie man in der echo-Funktion Sonderzeichen maskiert kund tun ?
" wird mit \ maskiert. Beispiel:
echo("<p class="big">Hallo Welt!</p>");
Grüße aus Barsinghausen,
Fabian
hi,
" wird mit \ maskiert. Beispiel:
echo("<p class="big">Hallo Welt!</p>");
daneben gibt es natürlich auch noch die möglichkeit, als string-begrenzer die einfachen hochkommata zu verwenden:
echo '<p class="big">Hallo Welt!</p>';
wobei hier dann natürlich wiederum im string selsbt auftauchende ' analog maskiert werden müssen.
allerdings gilt zu beachten, dass innerhalb von '...' nicht auf variablennamen geparst wird, hier muss man den string also zunächst auftrennen, wenn man eine variable einsetzen will - was aber im allgemeinen auch bei doppelten anführungszeichen der sauberere weg ist.
gruss,
wahsaga
Hallo,
daneben gibt es natürlich auch noch die möglichkeit, als string-begrenzer die einfachen hochkommata zu verwenden:
echo '<p class="big">Hallo Welt!</p>';
Oder auch die Heredoc-Syntax:
echo <<<STR
<p class="big">Hallo Welt!</p>
STR;
Da sei anzumerken, dass er nichts maskieren muss, und auch die Variablen geparst werden.
gruß,
Severin
Hallo,
besten dank fuer das fixe feedback :-)
Hier meine Ergebnisse mit dem Versuch der Umsetzung euerer Loesungsansaetze. Leider noch kein Durchbruch, aber ich denke mal das liegt an einem syntaktischen Fehler meinerseits.
Fabians Loesung:
echo("<p class="breadcrumb">Sie sind hier: .$breadcrumb->show_breadcrumb().</p>");
?>
erzeugt folgende, korrekt nach class formatierte, Ausgabe im Browser:
Sie sind hier: .().
Ausgegebener Quellcode:
<p class="breadcrumb">Sie sind hier: .().</p>
Wahsagas Loesung:
habe ich nicht probiert, da mein Kenntnisstand zu gering ist, um das anhand der Beschreibung selber zu loesen.
Severins Loesung:
echo <<<STR <p class="breadcrumb"> Sie sind hier:" .$breadcrumb->show_breadcrumb(). "</p>" STR;
?>
erzeugt fehler
parse error: parse error, unexpected T_SL, expecting ',' or ';' in /home/www/[...]
Koenntet ihr mich auf meinen Umsetzungsfehler hinweisen ?
Besten dank
Kai
Hallo,
erzeugt folgende, korrekt nach class formatierte, Ausgabe im Browser:
Sie sind hier: .().
Der Fehler liegt bei der Methode $breadcrumb->show_breadcrumb(). Ohne dass du sie postest, kann dir nicht geholfen werden.
Severins Loesung:
echo <<<STR <p class="breadcrumb"> Sie sind hier:" .$breadcrumb->show_breadcrumb(). "</p>" STR;
?>
erzeugt fehler
parse error: parse error, unexpected T_SL, expecting ',' or ';' in /home/www/[...]
Koenntet ihr mich auf meinen Umsetzungsfehler hinweisen ?
Ja, verstehe was du zu tun versuchst und lies den Manual-Eintrag (http://at2.php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc).
Da steht klipp und klar, dass der Begrenzer eines Heredoc-Strings am Anfang einer _neuen_ Zeile, als _erstes_ Zeichen dieser Zeile vorzukommen hat.
gruß,
Severin