Close tag ?> am Dateiende weglassen

This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

  • In so ziemlich jedem modernen PHP-Script findet man kein ?> am Ende der Dokumente. Für Anfänger, die frisch aus den Einsteigertutorials kommen, kann das verwirrend sein. In diesem Artikel wird kurz und einfach erläutert, warum es sinnvoll ist das schließende PHP-Tag ("?>") wegzulassen.
    Einführung

    Für Dateien, welche nur PHP-Code beinhalten, ist der schliessende Tag ("?>") nicht zugelassen. Er wird von PHP nicht benötigt und das Weglassen verhindert, dass versehentlich Leerzeilen in die Antwort eingefügt werden.

    So steht es in der Dokumentation der Zend-Engine (framework.zend.com/manual/1.12….php-file-formatting.html). Ihr werdet in keiner modernen Anwendung mehr am Ende einer PHP-Datei ein "?>" finden. Es sollte nur noch für die Abgrenzung von HTML-Code innerhalb von PHP-Code verwendet werden.

    PHP Source Code

    1. <?php
    2. /* Sinnloses Beispiel */
    3. if($_POST['password'] == '123456') {
    4. /* Hier okey (Meiner Meinung zwar unschön, aber okey. ;)) */ ?>
    5. <div class="container">
    6. <h1>Das Ultimative Passwort</h1>
    7. <p>Wie eine neue Studie der Harvard University ergab ist 123456 das stärkste Passwort. NICHT!</p>
    8. </div>
    9. <?php
    10. }
    11. else {
    12. echo 'Perfekt';
    13. }
    14. // ?> !!! Nein, nicht am Dateiende. Sollten hier danach noch Whitespaces oder neue Zeilen kommen, werden diese alle ausgegeben.
    Display All



    Warum weglassen?

    Wenn wir include(_once) oder require(_once) benutzen und am Ende der Datei nach dem schließenden PHP-Tag ein Whitespace ist, wird dieser schon gesendet, wodurch wir nach dem Einbinden dieser Datei keine weiteren Veränderungen am Response-Header durchführen können. Solltet ihr an einem bereits bestehen Projekt alle ?> am Ende eurer Dateien entfernen wollen, müsst ihr das ganze nicht per Hand machen. "Thewebhatesme" hat ein entsprechendes Script entwickelt, dass euch die Arbeit abnimmt: thewebhatesme.com/entwicklung/…n-schliessenden-php-tags/ (Linux Only)


    Quelle

    php.net/manual/de/language.bas…nstruction-separation.php

    14,618 times viewed