|
|
LXXIX. Bufferisation de sortie
Les fonctions de bufferisation de sortie vous permettent de contrôler
quand les données ont été envoyées par le script. Cela peut
être utile dans certaines situations, notamment si vous devez
envoyer des en-têtes au navigateur après avoir envoyé
des données. Ces fonctions n'affectent pas les en-têtes
envoyées par la fonction header() ou les
cookies envoyés par setcookie(). Seules les
fonctions telles que echo() et les données entre
blocs PHP sont affectées.
Ces fonctions sont disponibles dans le module PHP
standard, qui est toujours accessible. Il n'y pas d'installation nécessaire pour
utiliser ces fonctions, elles font parties du coeur de PHP. Le comportement de ces fonctions est
affecté par la configuration dans le fichier php.ini.
Tableau 1. Options de configuration | Nom | Par défaut | Modifiable |
|---|
| output_buffering | "0" | PHP_INI_PERDIR|PHP_INI_SYSTEM | | output_handler | NULL | PHP_INI_PERDIR|PHP_INI_SYSTEM | | implicit_flush | "0" | PHP_INI_PERDIR|PHP_INI_SYSTEM |
Pour plus de détails sur les constantes PHP_INI_*,
reportez-vous à ini_set().
Voici un éclaircissement sur
l'utilisation des directives de configuration.
- output_buffering
booléen/integer
Vous pouvez activer la bufferisation de sortie pour tous les fichiers
avec cette directive, en lui passant la valeur de 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).
- 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ée de manière transparente. Configurer
une telle fonction active automatiquement la bufferisation de sortie.
- 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érieuse implications et généralement, cela n'est conseillé
que pour les débogage. Cette valeur est par défaut à TRUE lorsque PHP
fonctionne en mode CLI SAPI.
Voir aussi
ob_implicit_flush().
Cette extension ne définit aucune ressource. Cette extension ne définit aucune constante.
Exemple 1. Exemple de bufferisation de sortie
<?php
ob_start(); echo "Bonjour\n";
setcookie("nom_du_cookie", "valeur_du_cookie");
ob_end_flush();
?>
|
|
Dans l'exemple ci-dessus, la fonction echo()
est stockée dans un buffer jusqu'à l'appel de la fonction
ob_end_flush(). Dans le même
temps, l'appel à setcookie() a réussi
à créer un cookie, sans générer d'erreur.
(D'habitude, vous devez envoyer les en-têtes avant les données).
Note :
Lorsque vous passez de PHP 4.1 ou 4.2 à 4.3, assurez vous que
implict_flush est à OFF dans
votre php.ini, sinon la fonction
ob_start() ne masquera pas les affichages engendrés.
- Table des matières
- flush -- Vide les buffers de sortie
- ob_clean --
Efface le buffer de sortie
- ob_end_clean --
Détruit les données du buffer de sortie, et éteint
la bufferisation de sortie
- ob_end_flush --
Envoie les données du buffer de sortie, et éteint la
bufferisation de sortie
- ob_flush -- Envoie le buffer de sortie
- ob_get_clean --
Lit le contenu courant du buffer de sortie puis l'efface
- ob_get_contents --
Retourne le contenu du buffer de sortie
- ob_get_flush --
Vide le tampon, le retourne en tant que chaîne et stoppe la mise en
tampon.
- ob_get_length --
Retourne la longueur du contenu du buffer de sortie
- ob_get_level --
Retourne le nombre de niveaux d'imbrications du système de bufferisation de sortie
- ob_get_status -- Lit le statut du buffer de sortie
- ob_gzhandler --
Fonction de callback pour la compression automatique des buffers
- ob_implicit_flush --
Active/désactive l'envoi implicite
- ob_list_handlers --
Liste les gestionnaires d'affichage utilisés
- ob_start -- Enclenche la bufferisation de sortie
- output_add_rewrite_var --
Ajoute une règle de réécriture d'URL
- output_reset_rewrite_vars --
Annule la réécriture d'URL
|