OVH Cloud OVH Cloud

PHP et HTML

8 réponses
Avatar
Le Fou
Salut,

Encore moi avec mes questions de débutant :
Pour intégrer du PHP dans du HTML, vaut-il mieux écrire (par ex.) :

<?php
echo "<table>";
echo "<tr>";
echo "<td>$Nom</td>";
echo "<td>$Prenom</td>";
echo "</tr>";
echo "</table>";
?>

ou :

<table>
<tr>
<td><?php echo "$Nom" ?></td>
<td><?php echo "$Prenom" ?></td>
</tr>
</table>

Et pourquoi ?
Merci.

--
A'tchao

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

8 réponses

Avatar
Olivier Miakinen

Pour intégrer du PHP dans du HTML, vaut-il mieux écrire (par ex.) :

<?php
echo "<table>";
echo "<tr>";
echo "<td>$Nom</td>";
echo "<td>$Prenom</td>";
echo "</tr>";
echo "</table>";
?>

ou :

<table>
<tr>
<td><?php echo "$Nom" ?></td>
<td><?php echo "$Prenom" ?></td>
</tr>
</table>

Et pourquoi ?


J'ai déjà répondu que la lisibilité devait être le critère le plus
important, alors maintenant c'est à toi de choisir.

Pour (ne pas) faciliter ton choix, je te donne une autre possibilité :
http://www.php.net/manual/fr/language.types.string.php#language.types.string.syntax.heredoc

echo <<<LEFOU
<table>
<tr>
<td>$Nom</td>
<td>$Prenom</td>
</tr>
</table>
LEFOU;

--
Olivier Miakinen
Troll du plus sage chez les conviviaux : le nouveau venu, avec
son clan, s'infiltre dans les groupes de nouvelles. (3 c.)

Avatar
Olivier Miakinen
Le 12/02/2006 11:16, je répondais au Fou :

Pour intégrer du PHP dans du HTML, vaut-il mieux écrire (par ex.) :

<?php
echo "<table>";
echo "<tr>";
echo "<td>$Nom</td>";
echo "<td>$Prenom</td>";
echo "</tr>";
echo "</table>";
?>

[...]


J'ai déjà répondu que la lisibilité devait être le critère le plus
important, [...]


À propos de lisibilité, je trouve que la lisibilité du code HTML généré
est au moins aussi importante que celle du code source. Je ne garderais
donc pas cette première solution car elle perd toutes les indentations
et tous les sauts de ligne : le résultat serait le même que si tu avais
echo "<table><tr><td>$Nom</td><td>$Prenom</td></tr></table>";


--
Olivier Miakinen
Troll du plus sage chez les conviviaux : le nouveau venu, avec
son clan, s'infiltre dans les groupes de nouvelles. (3 c.)


Avatar
clifden
Olivier Miakinen wrote:
Le 12/02/2006 11:16, je répondais au Fou :
Pour intégrer du PHP dans du HTML, vaut-il mieux écrire (par ex.) :

<?php
echo "<table>";
echo "<tr>";
echo "<td>$Nom</td>";
echo "<td>$Prenom</td>";
echo "</tr>";
echo "</table>";
?>




À propos de lisibilité, je trouve que la lisibilité du code HTML généré
est au moins aussi importante que celle du code source. Je ne garderais
donc pas cette première solution car elle perd toutes les indentations
et tous les sauts de ligne : le résultat serait le même que si tu avais
echo "<table><tr><td>$Nom</td><td>$Prenom</td></tr></table>";



Mais rien n'empeche de faire (ce que je fais d'ailleurs...):
echo "<table>n";
echo "t<tr>n";
echo "tt<td>$Nom</td>n";
echo "tt<td>$Prenom</td>n";
echo "t</tr>n";
echo "</table>n";

Ou encore:

$texte="";
$texte.= "<table>n";
$texte.= "t<tr>n";
$texte.= "tt<td>$Nom</td>n";
$texte.= "tt<td>$Prenom</td>n";
$texte.= "t</tr>n";
$texte.= "</table>n";

echo $texte;

Alors? 3ème et 4ème solutions? C'est vrai que l'écriture de Olivier dans
ton 1er post a l'avantage d'être succinte. Mais dès que l'on a besoin de
faire autre chose que des "echo" au milieu, on est alors obligé de faire
autant de bloc que necessaire. Et si tu me dis que l'on peut "preparer"
les choses avant pour n'avoir à faire l'echo qu'a la fin, cela a
l'inconvenient de rendre plus obscure ce que l'on fait.



Avatar
Le Fou
Olivier Miakinen a écrit :

À propos de lisibilité, je trouve que la lisibilité du code HTML généré
est au moins aussi importante que celle du code source. Je ne garderais
donc pas cette première solution car elle perd toutes les indentations
et tous les sauts de ligne : le résultat serait le même que si tu avais
echo "<table><tr><td>$Nom</td><td>$Prenom</td></tr></table>";


Je suis d'accord avec toi, c'est pourquoi je me penche vers d'autres
solutions.
Merci

--
A'tchao

Le Fou
(et sa signature réglementaire à 4 lignes et avec l'espace après les 2
tirets au départ du message ;-))

Avatar
bruno at modulix
Le Fou wrote:

Pour intégrer du PHP dans du HTML, vaut-il mieux écrire (par ex.) :

(snip solution 1 avec des echo à chaque ligne)

ou :

<table>
<tr>
<td><?php echo "$Nom" ?></td>
<td><?php echo "$Prenom" ?></td>
</tr>
</table>


La seconde.

Et pourquoi ?


Parce que !-)

1/ moins de echo -> moins de boulot
2/ html lisible -> gérable par un designer/intégrateur pas trop con
3/ met bien en évidence que c'est de la présentation (insertion
dynamique dans du html) et pas la logique métier (dans laquelle il ne
devrait rien y avoir qui ressemble de près ou de loin à du html).

Merci.


De rien !-)

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

Avatar
Olivier Miakinen
Le 13/02/2006 09:45, Le Fou me répondait :

[ plusieurs echo sans t ni n ]

Je suis d'accord avec toi, c'est pourquoi je me penche vers d'autres
solutions.


Que penses-tu de la syntaxe HereDoc ?

--
A'tchao

Le Fou
(et sa signature réglementaire à 4 lignes


Raté. ©

et avec l'espace après les 2 tirets au départ du message ;-))


Encore raté. ©

Mais bon, ce n'est pas très grave, hein !

--
Olivier Miakinen
Troll du plus sage chez les conviviaux : le nouveau venu, avec
son clan, s'infiltre dans les groupes de nouvelles. (3 c.)

Avatar
CrazyCat
Olivier Miakinen wrote:
Pour (ne pas) faciliter ton choix, je te donne une autre possibilité :
http://www.php.net/manual/fr/language.types.string.php#language.types.string.syntax.heredoc

echo <<<LEFOU
<table>
<tr>
<td>$Nom</td>
<td>$Prenom</td>
</tr>
</table>
LEFOU;


Je serais plus partisan de cette solution, ou bien du:
echo '<table>
<tr>
<td>$Nom</td>
...
</table>';

Les solutions dans lesquelles le php et le html se cotoient allègrement
sont assez lourdes à corriger, et il est toujours intéressant de séparer
ce qui se fait au niveau serveur et ce qui se fait au niveau client.

C'est d'ailleur une raison pour laquelle j'utilise une 3eme méthode qui
consiste à créer des variables pour chaque partie de ma page (comme
$header, $menu, $contenu) et de ne les afficher qu'à la fin dans
l'ossature HTML, laquelle est affichée par des echos.

--
Aide informatique: http://help-info.forumactif.com
Humour: http://www.chatfou.com
Tchattez en liberté: http://www.crazy-irc.net

Avatar
Le Fou
Olivier Miakinen a écrit :

Que penses-tu de la syntaxe HereDoc ?


Elle me plaît bien.
Je n'ai pas encore eu le temps de l'expérimenter mais je vais m'y
attarder...


Le Fou
(et sa signature réglementaire à 4 lignes


Raté. ©


Forcément ça dépasse... si une ligne est coupée en 2 ;-)


et avec l'espace après les 2 tirets au départ du message ;-))


Encore raté. ©


Bon alors là c'est moi qui fait la signature à la main, avec l'espace et les
4 lignes :

--
Ci dessus 2 tirets + 1 espace
A'tchao
Le Fou
4ème ligne à louer pour pub.