Muss man oft fremden Code in eine Seite einbinden und dies auch noch per JavaScript, so kommt es nicht selten vor, dass mensch den entsprechenden Code per E-Mail bekommt.
Ich rede hier von Fremdcode in der länge 6-60 Zeilen, so wie in etwa für Analyse-Javascripte oder sonstige, kleinere Sachen. Diese sollen dann meist über PHP in den HTML-Code eingebettet werden und meist auch exakt so, wie der Code vorgegeben wird (Stichwort Zeilenumbrüche).
Nun folgt der nächste Schritt, man öffnet das PHP-File und bereitet den Einbau vor. Oft sehe ich es bei Kollegen und Bekannten so:
- PHP-Datei öffnen.
- Fremdcode per Copy & Paste in den heimischen Editor bringen.
- Ein “echo” vorbereiten.
- Es folgt ein wildes getippe, damit alle Anführungszeichen entsprechend escaped werden.
- Hochladen
- zu 80%: Frust!
Frust! Der entsteht zu 80% am Ende der oft langen Phase des “coden” und “escapen”, weil am Ende vergessen wurde, den ganzen “echo’s” auch Zeilenumbrüche wie \n mitzugeben, damit nicht der ganze Code auf einer Zeile im Quelltext steht. Manche Analyse-Codes nehmen einem das mit falschem oder – schlimmstenfalls – keinem Tracking übel.
Nur, was tun? Das Stichwort dazu heißt: HEREDOC
Mit HEREDOC kann ich Fremdcode so in eine Variable oder an eine Ausgabe übergeben, dass der exakt so ausgegeben wird und das ist so einfach, dass ich auf jeden Fall schneller bin wie meine Kollegen – und dabei kann ich mich auch auf die Zeilenumbrüche verlassen.
HEREDOC funktioniert so:
$meinFremderInhalt = <<< MEINHEREDOC
Inhalt, Inhalt
Mehr Inhalt, kann auch Code sein
usw. , usf.
MEINHEREDOC;
Man nehme eine Variable und weise ihr mit Hilfe von <<< den Inhalt dessen zu, was der folgende HEREDOC-Delimiter enthält. Alles ab der Zeile unter MEINHEREDOC wird übernommen, Zeilenumbrüche, Einschübe usw.
Ein HEREDOC Bereich endet dann wieder mit dem exakten (!) HEREDOC Delimiter, den mensch auch oben benutzt plus einem abschließenden ; (nicht vergessen!).
Dannach kann mensch ganz einfach den Inhalt per
printf(‘%s’.”\n”,$meinFremderInhalt);
zum Beispiel in die Webseite ausgeben – inklusive Zeilenumbrüche.