joschilein
Multitalent
- 5 Mai 2006
- 1.393
- 151
Kann man mit einem Buffer oder anderen Konstrukten das Senden von Headern verhindern? Ich bekomme es damit nicht hin, auch nicht mit try-catch.
Natürlich kann ich in der fremden Klasse rumspielen und dort alle Header auskommentieren. Aber erstens geht es dann bei einem Update wieder von vorne los und zweitens spiele ich ungern in fremden Scripten rum, da ich dann von einem ins nächste komme und meist besser gleich selbst von vorne begonnen hätte.
PHP:
// Auffangen des Inhalts
$header_anz1 = count(apache_response_headers());
ob_start();
Fremdeklasse::MachMalEinBild($zeichenschritte); // Wirft leider auch Headers
$ob = ob_get_contents();
ob_end_clean();
$header_anz2 = count(apache_response_headers());
$ob_content = '???';
$ob_header = '???';
if ($header_anz2 > $header_anz1){
echo 'AAAAAAHHHH'; // Sieht man auch schon nicht mehr, falls z.B. vorher ein "Content-Type: image/png" gesendet wurde
// Die Alternative hier eine Exception zu werfen hilft auch nicht - und würde auch den Content unzugänglich machen.
}
// ...
// Eigene Header
foreach ($headers as $header){
header($header);
}
echo $ob; // Und hier bitte auch ohne fremde Header.