PHPGangsta - Der praktische PHP Blog

PHP Blog von PHPGangsta


PHP 5.4: Die neue Funktion header_register_callback()

with 2 comments

Neben den vielen größeren Änderungen und neuen Features in PHP 5.4 gibt es auch eine kleine, aber vielleicht nützliche Funktion, mit der man noch an den HTTP-Headern rumpfuschen kann bevor sie an den Browser geschickt werden: header_register_callback().

Gerade bei älteren Applikationen, bei denen die Header mittels header() an x-beliebigen Stellen manipuliert werden, kann man mittels dieser Funktion an einer zentralen Stelle noch welche hinzufügen, ändern oder entfernen.

Der Callback, der an die Funktion übergeben wird, wird genau dann aufgerufen wenn die Header an den Browser geschickt würden, also bei der ersten Ausgabe des Skripts. Ich kopiere mal als Beispiel schnell den Code aus dem Manual, daran ist ersichtlich was die Funktion machen kann:

<?

header('Content-Type: text/plain');
header('X-Test: foo');

function foo() {
    foreach (headers_list() as $header) {
        if (strpos($header, 'X-Powered-By:') !== false) {
            header_remove('X-Powered-By');
        }
        header_remove('X-Test');
    }
}

$result = header_register_callback('foo');
echo "a";

Man benötigt es wahrscheinlich nicht jeden Tag und in jedem Projekt, aber vielleicht ist es mal nützlich bei einem älteren Projekt sich genau da einzuhängen.

Written by Michael Kliewe

April 26th, 2012 at 10:15 am

Posted in PHP

Tagged with , ,

2 Responses to 'PHP 5.4: Die neue Funktion header_register_callback()'

Subscribe to comments with RSS or TrackBack to 'PHP 5.4: Die neue Funktion header_register_callback()'.

  1. Gut, dass das pünktlich zum 5.4.1 Release kommt 😀 Auf 5.4.0 würde ich die Funktion lieber nicht verwenden, da sie dort durch ein doppelten dtor beim shutdown ein segmentation fault verursachen kann 🙂

    nikic

    26 Apr 12 at 14:27

  2. […] PHP 5.4: Die neue Funktion header_register_callback() | PHP Gangsta […]

Leave a Reply

You can add images to your comment by clicking here.