array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'fr', ), 'this' => array ( 0 => 'function.ob-start.php', 1 => 'ob_start', ), 'up' => array ( 0 => 'ref.outcontrol.php', 1 => 'Fonctions de bufferisation de sortie', ), 'prev' => array ( 0 => 'function.ob-list-handlers.php', 1 => 'ob_list_handlers', ), 'next' => array ( 0 => 'function.output-add-rewrite-var.php', 1 => 'output_add_rewrite_var', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'fr', 'path' => 'reference/outcontrol/functions/ob-start.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PHP 4, PHP 5, PHP 7, PHP 8)
ob_start — Enclenche la temporisation de sortie
$callback
= null
, int $chunk_size
= 0, int $flags
= PHP_OUTPUT_HANDLER_STDFLAGS
): boolCette fonction active la mise en mémoire tampon de la sortie. Lorsque la mise en mémoire tampon est active, aucune sortie n'est envoyée depuis le script ; au lieu de cela, la sortie est stockée dans une mémoire tampon interne. Consultez What Output Is Buffered? pour savoir exactement quelles sorties sont concernées.
Les tampons de sortie sont empilables, c'est-à-dire ob_start() peut être appelée pendant qu'un autre tampon est actif. Si plusieurs tampons de sortie sont actifs, la sortie est filtrée séquentiellement à travers chacun d'eux dans l'ordre d'emboîtement. Consultez Nesting Output Buffers pour plus de détails.
Consultez User-Level Output Buffers pour une description détaillée des tampons de sortie.
callback
Un callback
callable optionnel peut être
spécifié. Il peut également être contourné en passant null
.
callback
est invoqué lorsque le tampon de sortie est
vidé (envoyé), nettoyé, ou lorsque le tampon de sortie est vidé
à la fin du script.
La signature du callback
est la suivante :
buffer
phase
PHP_OUTPUT_HANDLER_*
.
Consultez Flags Passed To Output Handlers
pour plus de détails.
Si callback
renvoie false
,
le contenu du tampon est renvoyé.
Consultez Output Handler Return Values
pour plus de détails.
Appeler l'une des fonctions suivantes à partir d'un gestionnaire de sortie entraînera une erreur fatale : ob_clean(), ob_end_clean(), ob_end_flush(), ob_flush(), ob_get_clean(), ob_get_flush(), ob_start().
Consultez Output Handlers
et Working With Output Handlers
pour plus de détails sur les callback
s (gestionnaires de sortie).
chunk_size
Si le paramètre optionnel chunk_size
est passé,
la fonction de rappel est appelée à chaque nouvelle ligne après
chunk_size
octets d'affichage.
La valeur par défaut 0
signifie
que toute la sortie est mise en mémoire tampon jusqu'à ce que la mémoire tampon soit désactivée.
Consultez Buffer Size pour plus de détails.
flags
Le paramètre flags
est un masque qui contrôle
les opérations qui peuvent être effectuées sur le tampon de sortie.
Par défaut, il autorise le tampon de sortie à être nettoyé, envoyé
et supprimé, ce qui peut être défini explicitement avec les
indicateurs de contrôle de la mémoire tampon
.
Consultez Operations Allowed On Buffers
pour plus de détails.
Chaque drapeau contrôle l'accès à un jeu de fonctions, tel décrit ci-dessous :
Exemple #1 Exemple de gestion de sortie avec fonction de rappel
<?php
function rappel($buffer)
{
// remplace toutes les pommes par des carottes
return (str_replace("pommes de terre", "carottes", $buffer));
}
ob_start("rappel");
?>
<html>
<body>
<p>C'est comme comparer des carottes et des pommes de terre.</p>
</body>
</html>
<?php
ob_end_flush();
?>
L'exemple ci-dessus va afficher :
<html> <body> <p>C'est comme comparer des carottes et des carottes.</p> </body> </html>
Exemple #2 Crée un tampon de sortie in-effaçable
<?php
ob_start(null, 0, PHP_OUTPUT_HANDLER_STDFLAGS ^ PHP_OUTPUT_HANDLER_REMOVABLE);
?>