Manuel PHP
Précédent |  | Suivant

# ob_start

(PHP 4 , PHP 5)

ob_start -- Enclenche la bufferisation de sortie

## Description

bool ob_start ( [callback output_callback])

ob_start() démarre la bufferisation de sortie. Tant qu'elle est enclenchée, aucune donnée, hormis les en-têtes, n'est envoyée au navigateur, mais temporairement mise en buffer.

Le contenu de ce buffer peut être copié dans une chaîne avec la fonction ob_get_contents(). Pour afficher le contenu de ce buffer, utilisez ob_end_flush(). Au contraire, ob_end_clean() effacera le contenu de ce buffer.

Une fonction optionnelle de callback peut être spécifiée en troisième argument. ob_start() prend une chaîne comme paramètre, et retourne une chaîne. Elle sera appelée par ob_end_flush() ou lorsque le buffer sera envoyé au navigateur à la fin du script et recevra le contenu du buffer de sortie. Lorsque la fonction `output_callback` est appelée, elle doit retourner un nouveau contenu pour le buffer de sortie : celui-ci sera envoyé au navigateur.

> Note : En `PHP` 4.0.4, ob_gzhandler() a été introduit pour faciliter l'envoi de fichier compressé avec gz aux navigateurs web qui supportent les pages compressées. ob_gzhandler() détermine le type d'encodage accepté par un navigateur, et retourne le contenu le plus adéquat.

Les buffers de sortie sont gérés par pile, c'est-à-dire que vous pouvez appeler plusieurs fois ob_start() simultanément. Assurez-vous que vous appelez ob_end_flush() suffisamment souvent. Si plusieurs fonctions de callback sont actives, les contenus seront filtrés séquentiellement, dans l'ordre d'emboîtement.

Exemple 1. Exemple de gestion de sortie avec fonction utilisateur

`<?php function callback($buffer) { // remplace toutes les pommes par des carottes return (ereg_replace("pommes de terre", "carottes", $buffer)); } ob_start("callback"); ?> <html> <body> <p>C'est comme comparer des carottes et des pommes de terre.</p> </body> </html> <?php ob_end_flush(); ?>`

va afficher :

`<html> <body> <p>C'est comme comparer des carottes et des carottes.</p> </body> </html>`

Voir aussi ob_get_contents(), ob_end_flush(), ob_end_clean(), ob_implicit_flush() et ob_gzhandler().

Précédent | Sommaire | Suivant
ob_list_handlers | Niveau supérieur | output_add_rewrite_var