Close tag ?> am Dateiende weglassen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

Sie betrachten gerade eine ältere Version des Artikels. Klicken Sie hier, um zur aktuellen Version zu gelangen.

  • 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-Quellcode

    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.
    Alles anzeigen



    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

    50 mal gelesen