Discussion:
echo avec les guillements?
(trop ancien pour répondre)
Otto Haldi
2009-09-24 07:45:18 UTC
Permalink
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,width=500,height=400');" 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,***@0');' width='320' alt'$pictfile'>";

Merci d'avance pour tous renseignements.
Otto
Olivier Miakinen
2009-09-24 09:22:16 UTC
Permalink
Bonjour,
Post by Otto Haldi
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
Post by Otto Haldi
<img border="0" src="$pictfile"
onclick="win=window.open('showimg','Hello',
'directories=no location=no menubar=no titel=no tollbar=no,status=no,width=500,height=400');" 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
2009-09-24 09:43:20 UTC
Permalink
Post by Olivier Miakinen
http://fr.php.net/manual/fr/language.types.string.php
Post by Otto Haldi
<img border="0" src="$pictfile"
onclick="win=window.open('showimg','Hello',
'directories=no location=no menubar=no titel=no tollbar=no,status=no,width=500,height=400');" 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
2009-09-24 09:44:19 UTC
Permalink
Bonjour,
Post by Otto Haldi
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...
Post by Otto Haldi
<img border="0" src="$pictfile"
onclick="win=window.open('showimg','Hello',
'directories=no location=no menubar=no titel=no tollbar=no,status=no,width=500,height=400');" 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,width=500,height=400\');"

width="320" alt="'.$pictfile.'" />';
Jean-Francois Ortolo
2009-09-24 11:36:52 UTC
Permalink
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
2009-09-25 10:47:19 UTC
Permalink
Encore merci pour les réponses, cela fonctionne.

Continuer la lecture sur narkive:
Loading...