Mailinglisten-Archive |
Hallo Rene, Rene Thiel schrieb: > Guten Morgen, > > ich bin etwas verwirrt: > im aktuellen Joomla finde ich mehrere PHP-Dateien, bei denen das schließende "?>" am Ende fehlt. > Ist es neuerdings üblich, das schließende "?>" wegzulassen? > Das letzte schließende PHP-Tag einer Seite kann weggelassen werden (siehe: http://de2.php.net/basic-syntax.instruction-separation), ich würde es aber aus mehreren Gründen nicht machen: 1.) Wird eine Datei mit fehlendem schließenden Tag per include() oder require() eingebunden, kann es zu einem Parser-Fehler kommen, da die eingebettete Datei erst in den Context des aufrufenden Scripts geladen und anschließend interpretiert; das fehlende Tag erzeugt dadurch fehlerhaften Folgecode. 2.) Man sollte einfach des guten Codings wegen jedes Tag schließen, das man geöffnet hat, damit der Code "sauberer" bleibt. In Deinem beschriebenen Fall ist übrigens jedes Leerzeichen und jeder Zeilenumbruch hinter dem "?>" eine direkte Ausgabe an den Browser, weshalb "headers already sent" gemeldet wird. Als Workaround könntest Du per ob_start() oder php.ini-Direktive die Ausgabepufferung aktivieren, dabei werden header-Anweisungen beim Skriptende bzw. beim Aufruf von ob_flush() zuerst gesendet, gefolgt von den eigentlichen Nutzdaten. Viele Grüße und einen schönen Sonntag, Sascha
php::bar PHP Wiki - Listenarchive