Das Verhalten dieser Funktionen wird durch Einstellungen in der php.ini beeinflusst.
Name | Default | Änderbar | Kommentar |
---|---|---|---|
output_buffering | "0" | PHP_INI_PERDIR | |
output_handler | NULL | PHP_INI_PERDIR | Verfügbar seit 4.0.4. |
implicit_flush | "0" | PHP_INI_ALL | PHP_INI_PERDIR in PHP <= 4.2.3. |
Hier eine kurze Erklärung der Konfigurationsoptionen:
Sie können Output Buffering für alle Scripte aktivieren, indem Sie diesen Wert auf 'On' setzen. Wenn Sie die Größe des Buffers auf limitieren wollen, so können Sie die maximale Größe in Bytes an Stelle von 'On' angeben (z.B. output_buffering=4096). Ab PHP 4.3.5 ist dieser Wert für den PHP-CLI-Kommandozeileninterpreter grundsätzlich 'Off'.
Sie können die Ausgaben Ihres Scriptes an eine Funktion weiterleiten. Wenn sie z.B. mb_output_handler() als output_handler setzen, so wird das Character-Encoding transparent in das spezifizierte Encoding umgewandelt. Das Setzen einer output_handle- Funktion aktiviert das Output Buffering automatisch.
Hinweis:
Sie können mb_output_handler() nicht gleichzeitig mit ob_iconv_handler() und ob_gzhandler() nicht gleichzeitig mit zlib.output_compression. benutzen.
Hinweis:
Es können nur eingebaute PHP-Funktionen angegeben werden, benutzerdefinierte Funktionen können mit Hilfe der ob_start()-Funktion genutzt werden.
Diese Option ist standardmäßig deaktiviert. Wenn Sie implicit_flush aktivieren, so wird PHP angewiesen, nach jedem Output-Block automatisch den Output-Layer zu leeren. Dies ist äquivalent zu flush()-Aufrufen nach jedem echo()- oder print()-Aufruf und nach jedem HTML-Block.
In Webanwendungen hat diese Option massive Performanceauswirkungen und sollte wenn überhaupt dann nur zu Debuggingzwecken aktiviert werden. Im PHP-CLI-Kommandozeileninterpreter dagegen ist diese Option standardmäßig aktiviert.
Siehe auch ob_implicit_flush().
PHP will send buffer to browser every get_opt('output_buffering') bytes.
I recommend to turn this option off in php.ini:
output_buffering = Off;