Laufzeit-Konfiguration
Das Verhalten dieser Funktionen wird
durch Einstellungen in der php.ini beeinflusst.
Weitere Details und die Definitionen der
INI_*-Konstanten sind unter
Wo Konfigurationseinstellungen gesetzt werden können zu finden.
Hier eine kurze Erklärung der
Konfigurationsoptionen:
-
output_buffering
bool/int
-
Die Ausgabepufferung für alle Dateien kann aktiviert werden, indem diese
Direktive auf "On"
gesetzt wird. Um die Größe des
Puffers zu begrenzen, kann anstelle von "On"
eine Zahl
angegeben werden, die der maximal zulässigen Anzahl von Bytes entspricht.
(z. B. output_buffering=4096
).
Diese Direktive ist für den PHP-CLI-Kommandozeileninterpreter
grundsätzlich "Off".
-
output_handler
string
-
Die Ausgaben eines Skripts kann an eine Funktion weitergeleitet werden.
Wenn output_handler
z. B. auf
mb_output_handler() gesetzt wird, wird die
Zeichenkodierung transparent in die angegebene Kodierung umgewandelt.
Durch das Setzen einer beliebigen Ausgabesteuerung wird die
Ausgabepufferung automatisch aktiviert.
Hinweis:
Die Funktionen mb_output_handler() und
ob_iconv_handler() können nicht zusammen verwendet
werden und die Funktion ob_gzhandler() und die Direktive
zlib.output_compression
können nicht zusammen mit einer der folgenden Funktionen und Direktiven
verwendet werden:
mb_output_handler(),
ob_gzhandler(),
zlib.output_compression
und "URL-Rewriter"-Handler (siehe
session.use_trans_sid
und output_add_rewrite_var()).
Hinweis:
Es können nur eingebaute Funktionen mit dieser Direktive verwendet
werden. Benutzerdefinierte Funktionen können mit Hilfe der Funktion
ob_start() genutzt werden.
-
implicit_flush
bool
-
Diese Option ist standardmäßig false
. Wenn implicit_flush auf true
gesetzt wird, wird PHP angewiesen, den Ausgabepuffer nach jedem
Ausgabeblock automatisch zu leeren. Dies entspricht dem Aufruf der
Funktion flush() nach jedem Aufruf einer Funktion, die
eine Ausgabe erzeugt (wie print oder
echo) und nach jedem HTML-Block.
In Webanwendungen führt diese Option zu erheblichen Leistungseinbußen und
wird im Allgemeinen nur für Debugging-Zwecke empfohlen.
In der CLI-SAPI
(Kommandozeileninterpreter) dagegen
ist diese Option standardmäßig true
.
Siehe auch ob_implicit_flush().
-
url_rewriter.tags
string
-
url_rewriter.tags
definiert die HTML-Tags und
Attribute, in welchen URLs durch
output_add_rewrite_var() umgeschrieben werden. Die
Voreinstellung ist "form="
.
Durch Hinzufügen des Wertes "form="
oder eines
beliebigen form
-Attributs wird form
ein verstecktes input
-Element hinzugefügt, das für
jedes an output_add_rewrite_var() übergebene
Name-Wert-Paar ein Name- und ein Wert-Attribut enthält.
Achtung
Wird dasselbe Tag mehr als einmal zu
url_rewriter.tags
hinzugefügt, wird nur der erste
Eintrag beim Umschreiben der URL verwendet.
Hinweis:
Vor PHP 7.1.0 wurde
url_rewriter.tags verwendet,
um session.trans_sid_tags
anzugeben.
-
url_rewriter.hosts
string
-
url_rewriter.hosts
gibt an, welche Hosts umgeschrieben
werden, um output_add_rewrite_var()-Werte aufzunehmen.
Standardmäßig ist das $_SERVER['HTTP_HOST']
.
Mehrere Hosts können mit einer durch Kommas getrennte Liste angegeben
werden, die keine Leerzeichen enthält, z. B.
"php.net,wiki.php.net,bugs.php.net"
.
support at losalgendesign dot com ¶11 years ago
Using "OFF" or no value on output_buffering will disable header modifications, like redirects or content-type or content-disposition resulting in the error we commonly attribute to output before header modifications:
Warning: Cannot modify header information - headers already sent by (output started at C:\PATH\filename.php:1) C:\PATH\filename.php on line 1
Example code with output_buffering = OFF which results in this behavior. Changing it to "ON" or giving it a value will likely cause normal behavior.
<?php header("Location: http://www.php.net"); ?>
or
<?php header("Content-Type: text/Calendar"); ?>
<?php header("Content-Disposition: inline; filename=appointment.ics"); ?>