Dans la programmation PHP, les tampons de sortie sont une fonctionnalité très puissante. À l'aide du tampon de sortie, vous pouvez capturer temporairement le contenu de sortie, effectuer des opérations ou modifier avant la sortie. PHP fournit des fonctions telles que ob_list_handlers () et ob_clean () pour nous aider à contrôler la sortie plus attentivement. Cet article expliquera comment utiliser ces deux fonctions pour le contrôle de la sortie en combinaison et donner des exemples de leurs applications pratiques.
Le tampon de sortie vous permet de contrôler la sortie de la page avant de la générer. Par défaut, PHP enverra la sortie du script directement au navigateur, mais si le tampon de sortie est activé, le contenu de sortie sera d'abord stocké dans le tampon. Vous pouvez contrôler le moment de la sortie du contenu et d'effacer le contenu du tampon via certaines fonctions.
ob_list_handlers () et ob_clean () sont des fonctions communes pour le traitement des tampons de sortie, qui sont utilisés pour répertorier respectivement le gestionnaire de tampon de sortie actuellement activé et effacer le contenu du tampon de sortie respectivement.
La fonction ob_list_handlers () est utilisée pour répertorier tous les gestionnaires de tampons de sortie actuels. Il renvoie un tableau contenant les noms de tous les gestionnaires de la pile de tampon de sortie actuelle. Vous pouvez vérifier s'il existe actuellement des gestionnaires de tampons de sortie actifs en appelant cette fonction et leur commande.
array ob_list_handlers ( void )
Renvoie un tableau de noms de tous les gestionnaires de tampons de sortie actuels. Si aucun gestionnaire n'est activé, un tableau vide est renvoyé.
<?php
// Allumez le tampon de sortie
ob_start();
// Ajouter un gestionnaire de tampon personnalisé
function custom_output_handler($buffer) {
return strtoupper($buffer); // Convertir la sortie en majuscules
}
ob_start("custom_output_handler");
// Sortir du contenu
echo "hello world";
// Liste le gestionnaire de tampon de sortie actuel
$handlers = ob_list_handlers();
print_r($handlers);
// Nettoyez le tampon et terminez
ob_end_clean();
?>
Dans cet exemple, nous activons d'abord le tampon de sortie via ob_start () . Ensuite, nous utilisons ob_start () pour ajouter un gestionnaire de tampon personnalisé personnalisé_output_handler au tampon. Ensuite, le nom du gestionnaire du tampon actuel est répertorié via ob_list_handlers () , et le tableau renvoyé contiendra personnalisé_output_handler .
La fonction ob_clean () est utilisée pour effacer le contenu dans le tampon de sortie, mais il ne ferme pas le tampon de sortie. Même si le tampon est effacé, le tampon de sortie est toujours allumé et vous pouvez continuer à l'utiliser pour capturer la sortie ultérieure.
bool ob_clean ( void )
Renvoie vrai sur le succès et faux si le tampon est vide.
<?php
// Allumez le tampon de sortie
ob_start();
// Sortir du contenu
echo "This is some content.";
// Effacer le tampon
ob_clean();
// Essayez de produire à nouveau du contenu
echo "This is the new content.";
// Le contenu du tampon de sortie
$content = ob_get_contents();
echo $content; // Sortir:This is the new content.
ob_end_clean();
?>
Dans cet exemple, nous avons d'abord publié du contenu, mais nous effacez ensuite le tampon via ob_clean () . Même si le tampon est effacé, nous pouvons continuer à ajouter un nouveau contenu au tampon et enfin de publier un nouveau contenu.
Ces deux fonctions peuvent être utilisées en combinaison pour obtenir un contrôle de sortie plus granulaire. Par exemple, vous pouvez vérifier le gestionnaire du tampon actuel avant de sortir, et si nécessaire, vous pouvez effacer le tampon et ajouter un nouveau gestionnaire.
<?php
// Allumez le tampon de sortie
ob_start();
// Sortir du contenu
echo "Initial content";
// utiliserob_list_handlers()Vérifiez le gestionnaire de tampon actuel
$handlers = ob_list_handlers();
print_r($handlers);
// S'il y a un gestionnaire dans le tampon actuel,Effacer le tampon
if (!empty($handlers)) {
ob_clean();
}
// Ajouter un nouveau gestionnaire de tampons
function new_output_handler($buffer) {
return strtolower($buffer); // 将Sortir转换为小写
}
ob_start("new_output_handler");
// Sortir新的内容
echo "New content";
// 获取缓冲区内容并Sortir
$content = ob_get_contents();
echo $content; // Sortir:new content
ob_end_clean();
?>
Dans cet exemple, nous publions d'abord du contenu, puis vérifions le gestionnaire de tampon de sortie actuel via ob_list_handlers () . S'il y a un gestionnaire, nous utilisons ob_clean () pour effacer le tampon, puis ajouter un nouveau gestionnaire de tampon pour convertir le contenu en minuscules.
Grâce aux fonctions ob_list_handlers () et ob_clean () , les développeurs PHP peuvent implémenter un contrôle fin du tampon de sortie. Vous pouvez vérifier si le tampon doit être effacé en répertoriant le gestionnaire actuel et en ajoutant de nouveaux gestionnaires lorsque cela est nécessaire pour modifier le contenu de sortie. Cela offre une grande flexibilité pour générer et modifier dynamiquement le contenu de la page Web.
J'espère que cet article vous aidera à comprendre comment utiliser ob_list_handlers () et ob_clean () en php pour le contrôle de sortie. Si vous avez des questions ou si vous souhaitez en savoir plus, n'hésitez pas à me contacter.