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éen/entier

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 chaîne de caractères

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éen

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 chaîne de caractères
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 chaîne de caractères
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

add a note add a note

User Contributed Notes 1 note

up
4
support at losalgendesign dot com
6 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"); ?>
To Top