L2 Info : PHP et Programmation Web
 
◃  Ch. 14 Retour sur les E/S  ▹
 

Output Buffering

  • PHP met à disposition un mécanisme de temporisation du flux de sortie ;
  • Cela permet (entre autre) de temporiser l'exécution d'une série de "echo" dans un script
  • L'activation du buffer est initié par la fonction ob_start()
  • Le buffer est libéré par la fonction ob_flush() ou ob_end_flush()
  • Exemple :
    ob_start();
    echo '<h1>Titre principal</h1>'; // bufferise une première chaîne
    echo '<h2>Sous-titre</h2>'; // bufferise une deuxième chaîne
    header('X-coursPHP: Coucou envoyé avant la réponse !'); // génération d'un en-tête HTTP 
    print '<p>Un peu de blah blah</p>'; // bufferise une troisième chaîne
    ob_flush(); // vide et envoie le contenu du buffer sur la sortie 
    // mais ne désactive pas le bufferisation
    echo '<p>Réutilise le buffer</p>'; // réalise une nouvelle bufferisation
    ob_end_flush(); // envoi le contenu du buffer et arrête la bufferisation
    
  • La fonction ob_start() et l'api sont bien plus riches que ce petit exemple !
    • flush(), ob_clean(), ob_end_clean(), ob_end_flush(), ob_flush(), ob_get_clean(), ob_get_contents(), ob_get_flush(), ob_get_length(), ob_get_level(), ob_get_status(), ob_implicit_flush(), ob_list_handlers(), ob_start(), output_add_rewrite_var(), output_reset_rewrite_vars()