PHP Buffer in Header und Content trennen

joschilein

Multitalent
ID: 9301
L
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.
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.
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.