Output buffering: l'affichage tampon
Article écrit par kazhar
L'output buffering est une technique qui permet de ne pas afficher directement les données à l'écran mais, plutot, de les stocker temporairement dans un buffer intermediaire.
Les trois fonctions utilisées pour l'Output buffering sont:
- ob_start() : pour initialiser l'output buffering
- ob_get_contents() : pour récuperer le contenu du buffer dans une variable.
- ob_end_clean() : pour arreter l'output buffering et vider le buffer.
Considerons l'exemple suivant:
Code :
<?php
ob_start();
echo "toto";
$output = ob_get_contents();
ob_end_clean();
echo "titi";
echo $output;
?>
Ce script n'affiche pas tototiti, mais tititoto. L'affichage de toto a été fait dans la buffer. et ce buffer n'est ensuite affiché qu'après titi.
Si nous avions utilisé la commande readfile() entre ob_start() et ob_end_clean(), le contenu du fichier aurait aussi été placé dans le buffer.
Grace à cette technique, il devient possible de préparer, dans un buffer, un contenu complexe provenant de sources multiples (fichier, bases de données) et de n'afficher le buffer que si toutes les opérations se sont bien déroulées. En fonctionnant ainsi, nous evitons de nous retrouver avec des erreurs en plein milieu de la page.
L'output buffering associé à la lecture de fichier distant peut aussi etre très interessant pour la gestion de templates.
Source : http://www.phportail.net