http://www.creatsiteweb.com Actualités et sujets informatiques |  |
| | | Bufférisation de sortie en PHP | Mar 18 Mar - 12:50 par Admin | La bufferisation de sortie permet d'envoyer les données au navigateur à un moment précis. Elle permet également d'éviter l'erreur des headers already sent et est donc très utile
La fonction ob_start() :
Cette fonction permet d'enclencher la mise en buffer de tout le code html qui sera généré par PHP. La fonction ob_end_flush() permet d'envoyer le contenu du buffer au navigateur.
Exemple :
<?php
ob_start();
//Votre code PHP
ob_end_flush();
?>
La fonction ob_start() peut également prendre une fonction comme paramètre, cette fonction sera appelée lorsque vous enverrez le buffer à l'aide de la fonction ob_end_flush().
Exemple :
<?php
ob_start('fonction_ici');
function fonction_ici($output_buffer)
{
return $output_buffer.'Fin de la page';
}
//Votre code PHP
ob_end_flush();
?>
Ici, notre exemple rajoutera à la fin de la page la mention 'Fin de la page'. Cette possibilité peut être très utile pour rajouter des mentions en bas de page sans faire d'include spécifique et sans utiliser la fonction ob_get_contents().
La fonction ob_end_flush() :
Cette fonction envoit les données contenues dans le buffer de sortie et détruit ensuite le contenu du buffer.
La fonction ob_flush() :
Cette fonction envoit les données contenues dans le buffer de sortie.
La fonction ob_clean() :
Cette fonction permet d'effacer le buffer de sortie.
La fonction ob_get_clean() :
Cette fonction lit le contenu du buffer de sortie puis l'efface.
La fonction ob_get_contents() :
Cette fonction retourne le contenu du buffer.
Exemple :
<?php
ob_start();
echo 'test';
$buffer=ob_get_contents(); //La variable $buffer contiendra la valeur 'test'
ob_end_flush();
?>
La fonction ob_get_length() :
Cette fonction retourne la taille en octets du buffer de sortie. Elle est particulièrement utile quand vous souhaitez retourner la taille du contenu qui va être envoyé au navigateur. C'est généralement de cette façon que font certains sites pour afficher la quantité de données (affichée généralement en Ko) qu'ils vous ont envoyé. Voici un exemple :
<?php
ob_start();
ob_start('ob_gzhandler');
echo 'tout ce qui doit être transmis';
header('Content-Type: text/xml');
header('Content-Length: '.ob_get_length()); //retournera la taille en octets de tout ce qui a été envoyé au navigateur (soit ici la taille de la chaîne "tout ce qui doit être transmis")
ob_end_flush();
?>
La fonction ob_gzhandler() :
Cette fonction permet d'être placée à la place de la fonction ob_start(). Elle permet si le serveur le supporte de compresser les pages web pour accélérer le temps de téléchargement pour le visiteur et gaspiller moins de trafic. Malheureusement cette option est souvent désactivée sur la plupart des hébergeurs. Vous pouvez toutefois utiliser cette option qui ne génèrera pas d'erreur meme
si la compression n'est pas utilisable sur le serveur.
| | Commentaires: 1 |
| | Qui est en ligne ? | Il y a en tout 1 utilisateur en ligne :: 0 Enregistré, 0 Invisible et 1 Invité
Utilisateurs enregistrés : Aucun
[ Voir toute la liste ] Le record du nombre d’utilisateurs en ligne est de 3 le Sam 7 Juin - 21:57
|
| Statistiques | Nous avons 63 membres enregistrés L’utilisateur enregistré le plus récent est rene
Nos membres ont posté un total de 87 messages dans 52 sujets
|
|
| |
|