Controler la sortie des données en PHP4
Par Auteur INTERNE, mardi 31 juillet 2001 à 12:05 :: Trucs et Astuces PHP :: #345 :: rss
Vous êtes vous jamais planté le nez sur un message d'erreur comme celui-ci :
Warning: Cannot add more header information - the header was already sent (header information may be added only before any output is generated from the script - check for text or whitespace outside PHP tags, or calls to functions that output text) in XXX.php3 on line Y
Lorsque vous utilisez les fonctions header() ou setcookie() il est impératif qu'il n'y ai aucun print qui précède.
Avec PHP 4 uniquement, vous pouvez utiliser les fonctions d'Output Control.
Voici un exemple :
<?php
ob_start();
print "Voici une sortie standard à l'aide d'un print.";
$buffer = ob_get_contents();
ob_end_clean();
header("Location: http://www.phpindex.com");
print $buffer;
?>
Ou encore, l'exemple du manuel PHP :
<?php
ob_start();
echo "Hello\n";
setcookie ("cookiename", "cookiedata");
ob_end_flush();
?>
Avec cette solution de buffering les headers ou les cookies ne seront plus bloqués. Le buffer passera après.Vous avez aussi la possibilité de compresser le contenu en gzip, ce qui accélère le transfert de vos page :
<?php
ob_start("ob_gzhandler");
?>
<HTML>
<BODY>
Voici une page compressée !!
</BODY>
</HTML>
<?php
ob_end_flush();
?>
ob_gzhandler() est une fonction qui compresse le buffer de sortie en gzip et place les bons headers pour que le navigateur décompresse la page puis l'affiche.ob_start() appellera automatiquement la fonction de compression.
Cette solution est une alternative intéressante au module GZip d'Apache.
Qu'existe t'il pour PHP3 ?
A part bidouiller soit même une solution pour récupérer les outputs de print ou de echo, mais je ne vois pas comment, à moins de concatener les output au lieu de faire des prints.
Coté solution toute faite, phpCache est une solution de cache qui supporte le php3 (franchement je n'ai pas compris comment), contrairement à JPCache qui supporte que les versions PHP 4.0.1 et plus.
Ressources intéressantes :
Article sur Zend
Article sur PHPBuilder, Caching et Compression Gzip
Article sur le Caching
jpcache v1.1.1
PHPCache 1.4







Commentaires
Aucun commentaire pour le moment.
Ajouter un commentaire
Vous pouvez soumettre un commentaire en remplissant le formulaire ci-dessous. Toutes les contributions font l'objet d'une étape de modération par notre équipe.
Le code HTML dans le commentaire sera affiché comme du texte, les adresses internet seront converties automatiquement.