OVH Cloud OVH Cloud

PHP dans HTLM

14 réponses
Avatar
Le Fou
Salut,

Vaut-il mieux écrire :

<?php
echo "<p class=\"date\">$buffer</p>";
?>

ou :

<p class="date">
<?php echo $buffer; ?>
</p>

Est-ce au choix ou celà a-t-il une incidence lors de la compilation ?
Merci.

--
A'tchao

Le Fou
http://gloupclub.free.fr/
http://www.ffessm-cd84.com/
http://ehiller.club.fr/

10 réponses

1 2
Avatar
Toto Le Ouf
<?php
echo "<p class="date">$buffer</p>";
?>

ou :

<p class="date">
<?php echo $buffer; ?>
</p>

Est-ce au choix ou celà a-t-il une incidence lors de la compilation ?
Merci.


Le php étant un langage interprété et non compilé, cela n'a aucune incidence
lors de la compilation.
Plus sérieusement, je pense que les 2 formes sont identiques.

T.

Avatar
Sitch
Le Fou wrote:
Salut,

Vaut-il mieux écrire :

<?php
echo "<p class="date">$buffer</p>";
?>

ou :

<p class="date">
<?php echo $buffer; ?>
</p>

Est-ce au choix ou celà a-t-il une incidence lors de la compilation ?
Merci.

--
A'tchao

Le Fou
http://gloupclub.free.fr/
http://www.ffessm-cd84.com/
http://ehiller.club.fr/



On peut aussi faire

<?php

echo "<p class='date'>".$buffer."</p>";

?>

ou bien

<?php

echo sprintf("<p class='date'>%s</p>", $buffer);

?>

Parmi toute ces différentes manières d'obtenir le même résultat,
quelle est la moins gourmande en CPU ? Je pense que la question
initiale était là ...

Avatar
Olivier Miakinen

Vaut-il mieux écrire :

<?php
echo "<p class="date">$buffer</p>";
?>

ou :

<p class="date">
<?php echo $buffer; ?>
</p>

[ plus plein de citations inutiles, y compris la signature non
conforme et trop longue ]



Attention de ne citer que le strict nécessaire à ta réponse. Il se
trouve que le message du Fou n'était pas trop long, même avec sa
signature, mais si tu cites de la même manière un article plus
long tu risques de voir ton article refusé par les cenSSeurs (©)
fasciSStes (©) que sont les modérateurs du groupe. ;-)

Voir <http://www.faqs.org/faqs/fr/usenet/repondre-sur-usenet/>.

On peut aussi faire

<?php
echo "<p class='date'>".$buffer."</p>";
?>

ou bien

<?php
echo sprintf("<p class='date'>%s</p>", $buffer);
?>


ou encore (ma préférée car la plus courte) :

<?php
echo "<p class='date'>$buffer</p>";
?>

Il y a aussi la syntaxe Heredoc, que je réserve quand même aux textes
très longs :
http://fr2.php.net/manual/fr/language.types.string.php#language.types.string.syntax.heredoc

Parmi toute ces différentes manières d'obtenir le même résultat,
quelle est la moins gourmande en CPU ? Je pense que la question
initiale était là ...


Si vraiment c'est ça la question, alors la réponse est « on s'en fout »
car c'est vraiment négligeable par rapport au reste du traitement
(surtout s'il y a un accès à une base de données et/ou si le visiteur
est en RTC).


Avatar
Bruno Desthuilliers
Le Fou wrote:
Salut,

Vaut-il mieux écrire :

<?php
echo "<p class="date">$buffer</p>";
?>

ou :

<p class="date">
<?php echo $buffer; ?>
</p>


Ce qui est le plus lisible dans le contexte...

Est-ce au choix ou celà a-t-il une incidence lors de la compilation ?


Quelle compilation ?

--
bruno desthuilliers
python -c "print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for
p in ''.split('@')])"

Avatar
Bilango

Parmi toute ces différentes manières d'obtenir le même résultat,
quelle est la moins gourmande en CPU ? Je pense que la question
initiale était là ...


J'ai fait un petit benchmark sur la durée de traitement. Bien sur, cela
ne présage pas de l'utilisation du CPU et de la mémoire. D'autre part,
ma machine, n'est pas toute récente (Pentium 4 2Gz) donc les durées ne
sont intéressantes que les unes par rapport aux autres, mais voici les
résultat avec la classe PEAR Benchmark_Iterate.

Moyenne sur 10 traitement d'une boucle de 100000 exécutions:


echo "<p class="date">$buffer</p>";
Résultat: 1.432826


<p class="date">
<?php echo $buffer; ?>
</p>
Résultat: 1.960738


echo "<p class='date'>".$buffer."</p>";
Résultat: 1.080702


echo '<p class="date">'.$buffer.'</p>';
Résultat: 1.055685


echo sprintf("<p class='date'>%s</p>", $buffer);
Résultat: 1.253660


--
Bilango

Avatar
Cbc
ou encore (ma préférée car la plus courte) :

<?php
echo "<p class='date'>$buffer</p>";
?>


Mais est-ce que cette syntaxe est bien valide en XHTML ? Il me semble
qu'il faut entourer les attributs de "".

Avatar
Olivier Miakinen

J'ai fait un petit benchmark [...]
Moyenne sur 10 traitement d'une boucle de 100000 exécutions:

[...]
Résultat: 1.432826
Résultat: 1.960738
Résultat: 1.080702
Résultat: 1.055685
Résultat: 1.253660


Soit entre une et deux secondes pour 100 000 chaînes affichées. Combien
de pages web retournent 100 000 lignes de résultat ? Et même si le
serveur arrive à les générer en moins de deux secondes, combien de
navigateurs arriveront à *afficher* le résultat durant ce temps ?
Enfin, pour 100 000 lignes affichées, combien y aura-t-il de dizaines
de secondes ou de minutes de traitement pour interroger une base de
données ou faire n'importe quoi d'autre ?

Bref : un grand merci pour ton test, qui prouve bien s'il en était
encore besoin que le temps de traitement des variantes de echo, ON
S'EN TAMPONNE LE COQUILLARD !

Avatar
Olivier Miakinen

echo "<p class='date'>$buffer</p>";


Mais est-ce que cette syntaxe est bien valide en XHTML ? Il me semble
qu'il faut entourer les attributs de "".


Pfff... il va falloir en faire une FAQ.

1) Les guillemets simples sont valides en HTML parce qu'ils le sont
en SGML.

2) Les guillemets simples sont valides en XHTML parce qu'ils le sont
en XML.

J'ai déjà donné les pointeurs vers les docs de référence. S'il le faut
je les rechercherai de nouveau.


Avatar
Bilango


Soit entre une et deux secondes pour 100 000 chaînes affichées. Combien
de pages web retournent 100 000 lignes de résultat ? Et même si le
serveur arrive à les générer en moins de deux secondes, combien de
navigateurs arriveront à *afficher* le résultat durant ce temps ?
[...]


On est bien d'accord. D'autant plus que la présence d'images est souvent
le facteur prépondérant dans le temps de chargement de la page.

J'avais remarqué ce genre de benchmark dans un livre de poche PHP avancé
portant sur le test print/echo/printf ou la conclusion portait sur la
quasi équivalence en temps de traitement entre print et echo (la minime
différence proviendrait de la présence d'une valeur de retour pour
print, alors que echo est de type void). Avec toutefois un temps un peu
plus long (mais négligable) pour printf à cause de sa fonction de formatage.


--
Bilango

Avatar
Bruno Desthuilliers
Olivier Miakinen wrote:
(snip)
Bref : un grand merci pour ton test, qui prouve bien s'il en était
encore besoin que le temps de traitement des variantes de echo, ON
S'EN TAMPONNE LE COQUILLARD !


Citation de la semaine ?-)

--
bruno desthuilliers
python -c "print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for
p in ''.split('@')])"

1 2