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 Disponible depuis PHP 4.0.4.
implicit_flush "0" PHP_INI_ALL PHP_INI_PERDIR en PHP <= 4.2.3.
url_rewriter.tags "a=href,area=href,frame=src,form=,fieldset=" PHP_INI_ALL Disponible depuis PHP 4.0.4. 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 depuis 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 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é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 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. Depuis 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

add a note add a note

User Contributed Notes 1 note

up
6
support at losalgendesign dot com
4 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