echo avec les guillements?

Le
Otto Haldi
Bonjour,

Je ne sais pas comment transformer la ligne HTML ci-dessous pour l'afficher avec un PHP echo?

Ligne HTML :
<img border="0" src="$pictfile"
onclick="win=window.open('showimg','Hello',
'directories=no location=no menubar=no titel=no tollbar=no,status=no,widthP0,height@0');" width='320' alt='$pictfile'>

Cette variante génère une erreur!
Je suppose que ce sont les doubles guillemets (") après onclick=" que j'ai aussi remplacé par un simple (').

echo"<img border='0' src='$pictfile' onclick='win=window.open('showimg.htm','Hello','directories=no location=no menubar=no titel=no
tollbar=no,status=no,widthP0,height@0');' width='320' alt'$pictfile'>";

Merci d'avance pour tous renseignements.
Otto
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Olivier Miakinen
Le #20216591
Bonjour,

Le 24/09/2009 09:45, Otto Haldi a écrit :

Je ne sais pas comment transformer la ligne HTML ci-dessous pour l'afficher avec un PHP echo?



RTFM ?
http://fr.php.net/manual/fr/language.types.string.php

Ligne HTML :
<img border="0" src="$pictfile"
onclick="win=window.open('showimg','Hello',
'directories=no location=no menubar=no titel=no tollbar=no,status=no,widthP0,');" width='320' alt='$pictfile'>



Tu as plein de solutions. Pour ne pas alourdir ma réponse, je ne réponds
que pour les deux premières lignes (jusqu'à 'Hello').

echo "<img border="0" src="$pictfile"
onclick="win=window.open('showimg','Hello',";

echo "<img border='0' src='$pictfile'
onclick="win=window.open('showimg','Hello',";

echo "<img border='0' src='$pictfile'
onclick=" . '"win=window.open('showimg','Hello',';

echo "<img border='0' src='$pictfile'
onclick=" . '"' . "win=window.open('showimg','Hello',";

echo '<img border="0" src="' . $pictfile . '"
onclick="win=window.open' . "('showimg','Hello',";

echo <<<OTTO
<img border="0" src="$pictfile"
onclick="win=window.open('showimg','Hello',
OTTO;

$onclick = '"' . "win=window.open('showimg','Hello',";
echo "<img border='0' src='$pictfile'
onclick=$onclick";

etc. À toi de voir celui celle qui te semble la plus lisible (ici, la
syntaxe Heredoc me semble personnellement la meilleure).

--
Olivier Miakinen
Olivier Miakinen
Le #20216681
Le 24/09/2009 11:22, je répondais à Otto Haldi :

http://fr.php.net/manual/fr/language.types.string.php

Ligne HTML :
<img border="0" src="$pictfile"
onclick="win=window.open('showimg','Hello',
'directories=no location=no menubar=no titel=no tollbar=no,status=no,widthP0,');" width='320' alt='$pictfile'>



[...]

(ici, la syntaxe Heredoc me semble personnellement la meilleure).



En fait, non. Sachant qu'il est préférable pour plusieurs raisons de
déporter le code JavaScript dans un fichier externe, le mieux est :
echo "<img border='0' src='$pictfile' onclick='mywinopen(this)'>";

... et la fonction mywinopen() trouvera bien sûr l'url de l'image dans
l'attribut this.src.
CrazyCat
Le #20216671
Bonjour,

Otto Haldi wrote:
Je ne sais pas comment transformer la ligne HTML ci-dessous pour l'afficher avec un PHP echo?



Comme toujours, on s'y perd entre les simples et doubles quotes...

Ligne HTML :
<img border="0" src="$pictfile"
onclick="win=window.open('showimg','Hello',
'directories=no location=no menubar=no titel=no tollbar=no,status=no,widthP0,');" width='320' alt='$pictfile'>



echo '<img border="0" src="'.$pictfile.'"
onclick="win=window.open('showimg', 'Hello',
'directories=no,location=no,menubar=no,title=no,tollbar=no,status=no,widthP0,');"

width="320" alt="'.$pictfile.'" />';
Jean-Francois Ortolo
Le #20217691
C'est simple

1- Tu vérifie que tes variables ne sont pas contenues dans des quotes
simples ( ' ), auquel cas elles ne seront pas interprétées.


2- Tu vérifie que les quotes doubles englobent toujours, le cas
échéant, les quotes simples, avec un seul niveau d'englobement.


3- Tu "backslashises" les quotes doubles, en remplaçant " par " partout.

4- Ensuite, tu englobe la chaîne de caractère résultante, par deux
quotes doubles ( sans backslashe ), et tu rajoute le saut de ligne n
à la fin de la chaîne de caractère, pour assurer un affichage correct du
code source pour le site, sinon la suite des lignes raboutées, serait
illisible.

5- Tu fais l'echo de cette chaîne de caractères.

6- Et... Le tour est joué ! ;)


Je conseille pour des pages entières, de faire autant d'echo de que
de lignes, mais rien n'empêche de concaténer les lignes ( avec des sauts
de ligne n à la fin de chaque lignes ) entre elles, et de faire un echo
de la chaîne de caractères globale.

A la limite, on pourrait faire une fonction qui fasse le boulot
automatiquement, avec en paramètre, la chaîne globale, et en sortie, la
chaîne traduite, donc on ferait :

echo chaine_traduite($chaine_html);

Pour ma part, je ne fais jamais comme ça, car je n'aime pas le codage
illisible. ;)

Bien à vous.

Jean-François Ortolo
Otto Haldi
Le #20223941
Encore merci pour les réponses, cela fonctionne.
Publicité
Poster une réponse
Anonyme