Qu'est-ce que le tampon de sortie?
Qu'est-ce que le tampon de sortie et pourquoi L'utilise-t-on en PHP?
5 réponses
tampon de sortie pour les développeurs Web, un guide de débutant :
sans buffer de sortie (par défaut), votre HTML est envoyé au navigateur en morceaux comme les processus PHP à travers votre script. Avec la mise en mémoire tampon de sortie, votre HTML est stocké dans une variable et envoyé au navigateur comme une pièce à la fin de votre script.
avantages de la mise en tampon de sortie pour les développeurs Web
- activer le tampon de sortie seul diminue le temps de téléchargement et de rendu de notre HTML parce qu'il n'est pas envoyé au navigateur en pièces alors que PHP traite le HTML.
- Tout ce qu'on peut faire avec les chaînes PHP, on peut le faire avec toute notre page HTML comme une variable.
- si vous avez déjà rencontré le message" Warning: Cannot modify header information-headers already sent by (output) " lors du paramétrage cookies, vous serez heureux de savoir que la mise en mémoire tampon de sortie est votre réponse.
tampon de sortie est utilisé par PHP pour améliorer les performances et pour effectuer quelques trucs.
-
" vous pouvez avoir PHP stocker toute sortie dans un tampon et la sortie tout à la fois améliorer les performances du réseau.
-
vous pouvez accéder au contenu de la mémoire tampon sans le renvoyer au navigateur dans certaines situations.
considérez ceci exemple:
<?php
ob_start( );
phpinfo( );
$output = ob_get_clean( );
?>
L'exemple ci-dessus capture la sortie dans une variable au lieu de l'envoyer au navigateur. output_buffering est désactivée par défaut.
- vous pouvez utiliser le tampon de sortie dans les situations où vous voulez modifier les en-têtes après avoir envoyé du contenu.
considérons cet exemple:
<?php
ob_start( );
echo "Hello World";
if ( $some_error )
{
header( "Location: error.php" );
exit( 0 );
}
?>
les fonctions de contrôle de sortie vous permettent pour contrôler quand la sortie est envoyée à partir script. Cela peut être utile dans plusieurs situations, surtout si vous avez besoin d'envoyer des en-têtes pour le navigateur après votre script a a commencé à la sortie de données. sortie Les fonctions de commande n'affectent pas headers envoyés en utilisant header () ou la fonction setcookie(), seules les fonctions telles que echo () et les données entre les blocs de PHP code.
http://php.net/manual/en/book.outcontrol.php
Plus De Ressources:
comme son nom l'indique ici mémoire tampon utilisé pour gérer la façon dont la sortie du script apparaît.
En voici un très bon tutoriel pour le thème
ob_start(); // turns on output buffering
$foo->bar(); // all output goes only to buffer
ob_clean(); // delete the contents of the buffer, but remains buffering active
$foo->render(); // output goes to buffer
ob_flush(); // send buffer output
$none = ob_get_contents(); // buffer content is now an empty string
ob_end_clean(); // turn off output buffering
Les Buffers peuvent être imbriqués, donc pendant qu'un buffer est actif, un autre ob_start() active un nouveau buffer. Ainsi, ob_end_flush() et ob_flush () n'envoient pas vraiment le tampon à la sortie, mais au tampon parent. Et seulement quand il n'y a pas de tampon parent, le contenu est envoyé au navigateur ou au terminal.
bien expliqué ici: https://phpfashion.com/everything-about-output-buffering-in-php