Configuration à l'exécution
Le comportement de ces fonctions est
affecté par la configuration dans le fichier php.ini.
Options de configuration des buffers de sortie
Nom |
Défaut |
Modifiable |
Historique |
output_buffering |
"0" |
PHP_INI_PERDIR |
|
output_handler |
NULL |
PHP_INI_PERDIR |
|
implicit_flush |
"0" |
PHP_INI_ALL |
|
url_rewriter.tags |
"a=href,area=href,frame=src,form=,fieldset=" |
PHP_INI_ALL |
Avant PHP 7.1.0, il était utilisé pour
la réécriture d'URL quand le SID transparent était activé. Depuis PHP
7.1.0, il est uniquement utilisé par la fonction
output_add_rewrite_var().
|
url_rewriter.hosts |
$_SERVER['HTTP_HOST'] est utilisé par défaut. |
PHP_INI_ALL |
Disponible à partir de PHP 7.1.0 |
Pour plus de détails sur les modes PHP_INI_*,
reportez-vous à
Où une directive de configuration peut être modifiée.
Voici un éclaircissement sur
l'utilisation des directives de configuration.
-
output_buffering
bool/int
-
Vous pouvez activer la bufferisation de sortie pour tous les fichiers
avec cette directive, en lui passant la valeur On
.
Si vous souhaitez limiter la taille du buffer à une certaine taille,
vous pouvez alors indiquer un nombre maximum d'octets à la place de
On
. Par exemple, output_buffering=4096
).
Cette directive est toujours désactivée en ligne
de commande.
-
output_handler
string
-
Vous pouvez rediriger le résultat de tous vos scripts à une fonction
avant leur envoi au navigateur. Par exemple, si vous configurez
output_handler à mb_output_handler(), l'encodage
des caractères sera adapté de manière transparente. Configurer
une telle fonction active automatiquement la bufferisation de sortie.
Note:
Vous ne pouvez pas utiliser simultanément mb_output_handler() avec
ob_iconv_handler(), non plus que
ob_gzhandler() avec
zlib.output_compression.
Note:
Seules les fonctions internes peuvent être utilisées avec cette directive.
Pour les fonctions utilisateurs, utilisez ob_start().
-
implicit_flush
bool
-
false
par défaut. En changeant cette valeur pour true
vous indiquez
à PHP que le buffer de sortie doit être vidé automatiquement après
chaque fonction d'affichage. Cela revient à appeler la fonction
flush() après chaque appel à
print
ou echo
et pour tous les blocs HTML
.
Lorsque vous utilisez PHP en environnement web, activer cette
option a de sérieuses implications et généralement, cela n'est conseillé
que pour les déboguages. Cette valeur est par défaut à true
lorsque PHP
fonctionne en mode CLI SAPI
.
Voir aussi
ob_implicit_flush().
-
url_rewriter.tags
string
-
Spécifie quelles sont les balises HTML qui doivent
être réécrites par les valeurs de la fonction
output_add_rewrite_var(). Par défaut, il vaut
a=href,area=href,frame=src,input=src,form=fakeentry,fieldset=
.
form
est une balise spéciale. La variable de formulaire
<input hidden="session_id" name="session_name">
est ajoutée.
Note:
Avant PHP 7.1.0, url_rewriter.tags
était utilisé pour spécifier
session.trans_sid_tags.
À partir de PHP 7.1.0, fieldset
n'est plus considéré comme
une balise spéciale.
-
url_rewriter.hosts
string
-
url_rewriter.hosts
spécifie les hôtes qui sont réécrits
pour includes les valeurs de la fonction
output_add_rewrite_var().
Par défaut $_SERVER['HTTP_HOST']
. Plusieurs
hôtes peuvent être spécifiés séparé par ",", aucun espace n'est autorisé
entre les hôtes. Par exemple :
php.net,wiki.php.net,bugs.php.net
support at losalgendesign dot com ¶9 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"); ?>