Folgendes Minimalbeispiel:
<?php
header("content-type:text/html; charset=utf-8");
flush();
var_dump(headers_list());
var_dump(headers_sent());
?>
Lokal gibt das schön:
array
0 => string 'X-Powered-By: PHP/5.3.5' (length=23)
1 => string 'content-type:text/html; charset=utf-8' (length=37)
boolean true
und online
array(2) {
[0]=>
string(24) "X-Powered-By: PHP/5.3.10"
[1]=>
string(37) "content-type:text/html; charset=utf-8"
}
bool(false)
Die Frage bezieht sich auf das boolean von headers_sent(). Vielleicht habe ich das einfach nicht verstanden. Ich benutzte diese Funktion in meiner shutdownfunktion. Diese macht sowas wie: "wenn der Header noch nicht raus ist, drucke die Fehlermeldung mit in die Ausgabe. Ansonsten schreibe Sie nur in die Logdatei". Leider geht sie immer davon aus, dass der Header noch nicht gesendet wurde.
Übrigens: ohne flush() verhält sich auch das lokale Beispiel so.
Bitte kann mich jemand aufklären.
Cheers,
Baba