HalloPHP

Heredoc und Short-Tags

Nice to know | letzte Änderung am 09. April '10 um 14:35 Uhr

Die Heredoc-Syntax arbeitet nur ordentlich, wenn man auf Short-Tags verzichtet (getestet unter PHP Version 5.3.1).

Folgender Code erzeugt eine unerwartete Ausgabe.

<?
echo <<<EOT
<html><body>Hallo Welt</body></html>
EOT;
?>
Hallo WeltEOT; ?> 

Ohne HTML-Tags erhalten wir bei diesem Code sogar gar keine Ausgabe.

<?
echo <<<EOT
Hallo Welt
EOT;
?>

Die Lösung ist, einfach anstelle von Short-Tags die Long-Tags zu verwenden.

<?php
echo <<<EOT
Hallo Welt
EOT;
?>

Es ist im Übrigen sowieso am besten, komplett auf Short-Tags zu verzichten, da diese über die Serverkonfiguratoin ausgeschaltet werden können und daraufhin PHP-Code, der zwischen Short-Tags steht, nicht mehr geparst wird.
Dies kann ein erhebliches Sicherheitsrisiko darstellen, wenn sensible Daten, wie Passwörter, plötzlich sichtbar werden.

Antworten