Manuel PHP Précédent Suivant 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. 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 callback avec fonction utilisateur ?php function callback( $buffer) {/ / remplace toutes les pommes par des oranges 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. / body / html ?php ob_end_flush();? va afficher: html body p C 'est comme comparer des carottes et des carottes. / body / html Voir aussi ob_get_contents(), ob_end_flush(), ob_end_clean(), ob_implicit_flush() et ob_gzhandler(). Précédent Sommaire Suivant Niveau supérieur Overload