Mailinglisten-Archive |
At 19:23 12.09.2000 +0200, Mario Zott wrote:
>probier gerade output-buffering zu betreiben funktioniert aber nicht.
>
><snip>
>echo "irgendwas";
>ob_start();
>echo "hallo";
>include("name.tpl");
>ob_end_flush();
></snip>
>
>bei beiden rechnern das gleiche problem (string wird ganz normal
>ausgegeben..)
Hi Mario,
das Verhalten ist ja auch richtig...
Aus dem Manual:
ob_start() -- Turn on output buffering
ob_end_flush -- Flush (send) the output buffer and turn off
output buffering
du startest das OB, und dann lässt du alles aus dem Buffer aus-
geben und beendest das OB.
Was hast du denn vor?
Beispiel bei dem OB nötig ist:
<?
function error($error, $line, $file, $var) {
ob_start();
print_r($var);
$var_content = ob_get_contents();
ob_end_clean();
echo(sprintf(
"Fehler: %s\nZeile: %s\nDatei: %s\nInhalt der Variable:\n%s",
$error,
$line,
$file,
$var_content
));
}
?>
Damit kann man komfortabel bei seiner Error-Function das
Debugging mit einbauen. Man übergibt der error-Function
als 4. Argument eine Variable (z.B. wenn man mit Klassen
arbeitet $this) und erhält deren kompletten Inhalt, egal
ob Verschachtelte Arrays, Objekte, Stings, usw.
Man kann anstatt print_r() nartürlich auch var_dump() ver-
wenden, je nach belieben.
Wiso hier OB nötig ist:
print_r() bzw. var_dump() geben die Inhalte immer direkt
aus, d.h. man kann sie ohne die OB-funktionen nicht ab-
fangen.
Bye
Dante
php::bar PHP Wiki - Listenarchive