Administrateur PHPfrance |
3088 Messages
30 mai 2007, 01:33
y a t'il une limite a la quantité d'information que peut afficher la fonction echo?
Non, pas vraiment. Tu pourrais faire un echo de 16 MiB sans problème particulier (du moment que la variable tient en mémoire). Ce n'est pas une bonne pratique mais ce n'est pas un gros problème non plus, il faut juste éviter de le faire quand on est pas obligé. Si tu peux commencer à faire des echo pendant la création de tes "5 pages A4" l'utilisateur commencera à recevoir les données plus tôt et aura une meilleure impression de vitesse. Si ces données sont dans un fichier, oublie echo et utilise readfile() à la place.
Concernant les performances d'echo, c'est une bonne habitude que d'utiliser un "echo multi-arguments" plutôt que l'opérateur de concaténation, ainsi que de sortir de PHP pour les gros morceaux de HTML sans variables. Par exemple, au lieu de
echo "J'ai $x pommes et $y oranges";
echo "J'ai " . $x . ' pommes et ' . $y . ' oranges';
...on préfèrera
echo "J'ai ", $x, ' pommes et ', $y, ' oranges';
La différence entre
. et
, c'est que le premier concatène toute la phrase en mémoire puis fais un echo du résultat, alors que le second affiche chaque élément au fur et à mesure. C'est un détail technique. Quant aux gros blocs HTML:
echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Mon site</title>
</head>
<body>
', $PAGE, '
</body>
</html>';
...sera remplacé par
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Mon site</title>
</head>
<body>
<?php echo $PAGE; ?>
</body>
</html>
...mais là encore, le gain est infinitésimal. À l'échelle d'une page entière, en optimisant tous tes echo tu gagneras peut-être un millième de seconde. En même temps c'est un 1/1000ème de seconde que tu gagnes en rendant ton code plus lisible donc c'est doublement avantageux
