ob_start

(PHP 4, PHP 5, PHP 7, PHP 8)

ob_startEnclenche la temporisation de sortie

Description

ob_start(?callable $callback = null, int $chunk_size = 0, int $flags = PHP_OUTPUT_HANDLER_STDFLAGS): bool

Cette 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 Quelle sortie est bufferisée ? 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 Imbrication des tampons de sortie pour plus de détails.

Consultez Tampons de sortie au niveau utilisateur pour une description détaillée des tampons de sortie.

Liste de paramètres

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 :

handler(string $buffer, int $phase = ?): string
buffer
Contenu du buffer de sortie.
phase
Masque de bits des constantes PHP_OUTPUT_HANDLER_* . Consultez Drapeaux passés aux gestionnaires de sortie pour plus de détails.

Si callback renvoie false, le contenu du tampon est renvoyé. Consultez Valeurs de retour des gestionnaires de sortie pour plus de détails.

Avertissement

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 Gestionnaires de sortie et Travailler avec les gestionnaires de sortie pour plus de détails sur les callbacks (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 Taille du tampon 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 Opérations autorisées sur les tampons pour plus de détails.

Chaque drapeau contrôle l'accès à un jeu de fonctions, tel décrit ci-dessous :

Constante Fonctions
PHP_OUTPUT_HANDLER_CLEANABLE ob_clean(),
PHP_OUTPUT_HANDLER_FLUSHABLE ob_flush(),
PHP_OUTPUT_HANDLER_REMOVABLE ob_end_clean(), ob_end_flush() et ob_get_clean(). ob_get_flush().

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Exemples

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);

?>

Voir aussi