PHP: Echo HTML Code mit beiden Arten von Anführungszeichen ohne Escape
Frage von Chematik | 23.03.2012 um 23:40
Ich habe in PHP oftmals das Problem, dass ich mit echo lange HTML Texte ausgeben möchte, die beide Arten von Anführungszeichen enthalten können, also " und ', zum Beispiel weil auch noch JavaScript enthalten sein kann.
Nehmen wir zum Beispiel folgenden HTML-Code:
<input name="test" value="" onkeyup="$('#a').show();">
Wenn ich diesen HTML Code mit echo ausgeben würde, zum Beispiel mit
echo '<input name="test" value="" onkeyup="$(\'#a\').show();">';
müsste ich die einfachen Anführungszeichen ' mit \ escapen. Bei diesem einen Code-Fetzen wäre das nicht schlimm. Aber ich habe eine Menge von Code und da wäre es sehr umständlich immer die Escapezeichen reinzuschreiben.
Gibt es dafür nicht eine bessere, elegantere Lösung?
Ähnliche Themen
PHP: Zeit und Performance messen
Tutorial | 0 Kommentare
PHP: MySQL-Ergebnis in Array speichern
Info | 0 Kommentare
Bild vor dem Upload im Browser verkleinern
Tutorial | 5 Kommentare
jQuery: HTML5 Canvas mit Ajax an Server senden
Tutorial | 0 Kommentare
PHP: Eine E-Mail versenden
Tutorial | 0 Kommentare
CSS-Stylesheets in HTML einbinden
Tutorial | 0 Kommentare
PHP: Strings mit Ctype-Funktionen auf Zeichenklassen überprüfen
Artikel | 0 Kommentare
Wichtiger Hinweis
Bitte beachten Sie: Die Beiträge auf askingbox.de sind Beiträge von Nutzern und sollen keine professionelle Beratung ersetzen. Sie werden nicht von Unabhängigen geprüft und spiegeln nicht zwingend die Meinung von askingbox.de wieder. Mehr erfahren.
Jetzt mitmachen
Stellen Sie Ihre eigene Frage oder schreiben Sie Ihren eigenen Artikel auf askingbox.de. So gehts.
Zum Glück gibt es dafür eine elegante Lösung. Das Zauberwort heißt heredoc oder nowdoc.
Hier mal ein Beispiel für heredoc:
Alles was zwischen "echo <<<EOT" und "EOT;" steht, wird ausgegeben. Auch Zeichen wie <, >, ' und " können notiert werden. Wichtig ist, dass "echo <<<EOT" und "EOT;" am Anfang der Zeile stehen und dahinter keine anderen Zeichen (auch keine Leerzeichen) vorkommen, sonst kommt es zu einer Fehlermeldung. So kannst du problemlos deinen HTML Code ausgeben und darüberhinaus werden auch noch Variablen wie im Beispiel $foo ausgewertet und angezeigt.
Wenn du die Variablen nicht ausgewertet haben möchtest, kannst du einfach folgende Syntax verwenden:
Schon werden die Variablen nicht mehr ausgewertet. Diese Variante nennt sich nowdoc.
24.03.2012 um 17:24