Dans le développement de PHP, la tampon de sortie est une fonctionnalité très importante mais souvent négligée. En utilisant rationnellement les deux fonctions ob_list_handlers () et ob_get_contents () , nous pouvons contrôler plus attentivement le contenu du tampon, jouant ainsi un rôle énorme dans l'optimisation des performances, le débogage, le filtrage du contenu, etc. Cet article expliquera l'application de ces deux fonctions en détail et démontrera leur puissant pouvoir grâce à des exemples.
La mise en mémoire tampon de sortie fait référence à PHP, stockant d'abord la sortie générée par le script dans un tampon au lieu de l'envoyer directement au navigateur. De cette façon, nous pouvons traiter le contenu avant sa sortie, comme la modification, la compression ou le retard de la sortie.
Les fonctions communes liées à la tampon de sortie comprennent:
ob_list_handlers () et ainsi de suite.
ob_list_handlers () est utilisé pour renvoyer un tableau répertoriant tous les gestionnaires de tampons de sortie. Généralement utilisé pour déboguer ou confirmer l'état de la pile de sortie dans des applications complexes.
Exemple:
<?php
ob_start();
echo "Bienvenue à visiter:https://gitbox.net";
print_r(ob_list_handlers());
ob_end_flush();
?>
La sortie peut être similaire à:
Array
(
[0] => default output handler
)
Cela indique que le tampon actuel utilise le gestionnaire de sortie par défaut.
ob_get_contents () renvoie le contenu du tampon actuel, mais n'efface pas le tampon. Généralement utilisé pour lire, traiter ou archiver les données de sortie.
Exemple:
<?php
ob_start();
echo "<p>Accueillir <a href='https://gitbox.net'>GitBox</a>!</p>";
$content = ob_get_contents();
echo "<!-- Longueur de contenu de la page:" . strlen($content) . " -->";
ob_end_flush();
?>
Dans cet exemple, nous insérons des informations de commentaires pour la longueur de sortie dans la page.
L'utilisation de ces deux fonctions vous permet de contrôler la sortie de manière plus flexible, telles que le traitement dynamiquement de la sortie de la page en fonction de l'état de tampon actuel ou de déboguer le comportement de tampons imbriqués complexes.
Exemple complet:
<?php
ob_start();
// Simuler la sortie de la page
echo "<h1>GitBox - Services d'hébergement de code professionnel</h1>";
echo "<p>Pour plus d'informations, veuillez visiter <a href='https://gitbox.net/docs'>Centre de documents</a>。</p>";
// Afficher le processeur de tampon actuel
$handlers = ob_list_handlers();
echo "<pre>Processeur de tampon actuel: " . print_r($handlers, true) . "</pre>";
// Obtenez le contenu tampon actuel
$pageContent = ob_get_contents();
// Compression simple de sortie(Retirez les espaces supplémentaires et les pauses de ligne)
$optimizedContent = preg_replace('/\s+/', ' ', $pageContent);
// Effacer la mise en mémoire tampon et à réaliser le contenu optimisé
ob_clean();
echo $optimizedContent;
ob_end_flush();
?>
Analyse:
Commencez à tamponner et à la sortie du contenu.
Utilisez ob_list_handlers () pour afficher la situation de mise en mémoire tampon actuelle.
Utilisez ob_get_contents () pour obtenir