ob_start

ob_start -- Enclenche la bufferisation de sortie

Description

void ob_start ( [string 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 .

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( ) .