8792 sujets

Développement web côté serveur, CMS

Salut et bonne fête !!!

Mon problème et le suivant, J’ai du mal à trouver la bonne syntaxe, c’est au niveau des simple et double guillemets je ne vois pas à quel moment faux place l'une ou l'autre.

echo '<a href="gallery/egypte/?page=photo"><imgsrc="gallery/egypte/'.$boucle['images'].'"width="95" height="95"/></a>';

Merci.
Modifié par echo (29 Dec 2006 - 20:22)
Il y a deux types de stings en PHP :

le simple quote, encadré par des ' '
le double quote, encadré par des " "

La différrence tient au traitement que fait PHP: un simple quote est laissé tel quel et les variables ne sont pas remplacées; un double quote est analysé et les variables sont remplacées.

$var = 1
echo '$var'; // ==> $var
echo "$var"; // ==> 1

En HTML ( dont les valeurs des attributs de ton lien par exemple), il faut des doubles quotes ( cela n'a rien avoir avec PHP ).

Tu veux également remplacer tes variables, donc tu devrais utiliser des doubles quotes. Mais il y a le problème des doubles quote de ton html.

Si tu fais

echo "<a href="$var">lien</a>"; // mauvais !

Tu as un problème car PHP pense que la chaîne s'arrête.

Tu dois donc concaténer des chaînes de cette façon ( l'opérateur . met bout à bout des chaînes ).

La solution :

echo '<a href="gallery"><img src="gallery/'.$boucle.'"/></a>';

Donc pour PHP: il voit d'abord une chaîne entre simple quote qui n'est pas analysée ( elle contient des doubles quote du html, mais ce n'est pas un terminateur de chaîne ), ensuite il concatène cette chaîne avec une variable, puis il concatène ça avec une deuxième chaîne entre simple quote.

Voilà, je pense que c'est clair Smiley biggol
Salut,
Cedric a écrit :
En HTML ( dont les valeurs des attributs de ton lien par exemple), il faut des doubles quotes ( cela n'a rien avoir avec PHP ).
Soit dit en passant, les apostrophes sont parfaitement valables en HTML comme en XML pour encadrer les valeurs d'attributs.