[PHP] Petite astuce pour afficher simplement du code HTML :D

WRInaute occasionnel
Au lieu de faire :
Code:
echo "<FONT COLOR=\"Red\">Les antislashes c'est pénible</FONT>";
... qui vous oblige à faire attention de ne pas oublier des "\" devant les guillemets ...

ou encore :
Code:
<?
mon code php
?>
<FONT COLOR="Red">Y'a plus d'antislashes mais pour afficher des <? echo $variables; ?> c'est pas joie :'(</FONT>
<?
mon code php
?>
... qui, en plus de pas être clair, vous oblige à faire des <? echo $variable; ?> quand il faut afficher une variable ...


Vous avez une alternative très sympa mais pourtant très peu utilisée qui est :
Code:
echo <<<EOF
<FONT COLOR="Red">Je n'ai plus de problèmes avec les antislashes ou les $variables =)</FONT>
EOF;
Essayez, vous allez voir que ça marche ;)
PHP va afficher tout ce qu'il y a entre "<<<EOF" et "EOF;" (attention "EOF;" doit être seul sur une ligne).

Les avantages :
- Vous pouvez indenter votre code html comme bon vous semble
- Toutes les $variables sont interprétées automatiquement
- Pas besoin de mettre d'antislashes devant quoique ce soit (guillemets, apostrophes, etc..)
- Vous pouvez utiliser la paire de délimiteurs que vous voulez. Par exemple "FIN" plutot que "EOF"

Voili voulou ;)
 
WRInaute occasionnel
tiens en effet, je connaissais EOF; , mais j'avais jamais pensé à l'utiliser pour du code HTML... Pas bête
cependant, j'ai bien peur que mon éditeur PHP me pète à la gueule si je m'amuse à ça ;)

en tout cas ... BIEN JOUE, SUPERPJ !!
 
WRInaute accro
c'était donc ça !
et moi qui pensait que EOF était simplement un commentaire de ta part dans ton code... lol
well done collègue !
 
WRInaute discret
Chez moi ton truc ma marche pas et puis à force ça doit être illisible ! C'est surement pour ça que c'est très peu utilisé... car peu conventionelle.

Rien que dans l'éditeur ça deviens le zouc, la coloration syntaxique part en sucette et les guillemets provoque des problemes d'affichage.

Bref j'conseille la chose à personne
 
WRInaute accro
moi au contraire je le conseille, au moins il n'y aura plus d'erreur à cause des apostrophes oubliées
et puis, en même temps, je n'ai pas de "coloration syntaxique" alors...
 
WRInaute passionné
J'ai beaucoup mieux à te proposer moi...

Je reprend ton exemple :
Code:
echo "<FONT COLOR=\"Red\">Les antislashes c'est pénible</FONT>";

Au lieu de faire cela, je fais comme ça :

Code:
echo '<FONT COLOR="Red">Les antislashes c\'est pénible mais je peux utiliser les signes " " " autant que je veux... le seul que je dois échappé est \', donc juste les apostrophes</FONT>';

Je trouve cela bien plus simple quand même.
 
WRInaute impliqué
medium69 a dit:
Au lieu de faire cela, je fais comme ça :

Code:
echo '<FONT COLOR="Red">Les antislashes c\'est pénible mais je peux utiliser les signes " " " autant que je veux... le seul que je dois échappé est \', donc juste les apostrophes</FONT>';

Tout à fait d'accord, et si il y a une variable dedant :

Code:
echo '<FONT COLOR="Red">J\'affiche ma variable $variable (qui est ' . $variable . '), et c\'est plutôt pas mal :-)</FONT>';

EOF est à mon avis intéressant pour une parcelle de code HTML assez grande. Même si dans ce cas là je ferme PHP et je le réouvre seulement pour les variables à insérer (au moins la coloration synthaxique HTML est présente).
 
WRInaute passionné
une portion d'un de code utilisant cette technique :

Code:
echo IMG_PUCE_NAV.'<a href="'.URL_ANNUAIRE.'/annuaire.php" title="L\'annuaire des '.number_format($nb_site_annuaire, 0, ',', ' ').' sites répertoriés.">'.$annuaire.'</a><br />';

tu peux afficher tout ce que tu veux sans te prendre la tête avec les guillemets
 
WRInaute impliqué
Les quotes simples c'est ce que j'utilise... et je fais de la concaténation pour les variables...
Code:
echo '<FONT COLOR="Red">Bonjour '.$nom_visiteur.' comment tu vas? Moi je m\' appelle Admin.</FONT>';
 
WRInaute impliqué
<<<EOF c'est du perl, il y a la même chose pour mettre un contenu de variable sur plsuieurs lignes.

C'est pour cela que ça fonctionne pas tout le temps, et je comme la plus part je préfére echo''; :)
 
WRInaute occasionnel
Le problème avec les apostrophes (simple-quotes) c'est que vous êtes obligés de concaténer les variables puisque celles si ne sont pas interprétées et mettre des antislashes devant les apostrophes internes.

Le problème avec les guillemets (quotes) c'est qu'il ne faut pas oublier un seul antislash devant les guillemets internes.

Concernant la coloration syntaxique vous utilisez quoi comme éditeur ? Moi UltraEdit et ca ne lui pose aucun problème :p Je ne vois pas trop quels problèmes d'affichage ca pourrait poser sachant que "echo <<<EOF" est sur une ligne, "EOF;" est sur une ligne séparée, et que tout ce qu'il y a entre n'est que du code html tout ce qu'il y a de plus classique avec des délimiteurs fontionnant par paires :? bref quel éditeur vous pose problème ? ;)

En tout cas chacun sa technique pour programmer, moi personnellement je préfère "<<<EOF" pour afficher de longues chaînes de caractères qui tiennent sur pluiseurs lignes parce que d'une part je n'ai besoin de rien échapper et d'autre part je n'ai pas besoin de concaténer les variables comme le nécessitent les simple-quotes :p

>>> SIR DIPP : très bien vu pour le Perl :) Je suis programmeur Perl à la base ;) toi aussi ? ;)
 
Nouveau WRInaute
Y'a aussi utiliser des templates du genre Smarty pour séparer le code fonctionnel PHP du code de design HTML.
 
Discussions similaires
Haut