Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Probleme apostrophe

6 réponses
Avatar
Le Fou
Salut, j'ai un petit problème avec l'échappement d'une apostrophe :
Une variable dans une ARRAY qui contient une apostrophe :

$legendes = array('...', 'L\'orange', '...');

J'utilise ensuite cette variable dans une fonction JavaScript, montreimage()
et mon PHP écrit une ligne HTML :

echo '<a href="..." onclick="montreimage(\''.$photos[$i].'\',
\''.$legendes[$i].'\'); return false;"><img src="..."></a>'."\n";

Le problème c'est que le HTML ainsi généré s'écrit :

<a href="..." onclick="montreimage('photo2.jpg','L'orange')...

Ce qui génère une erreur car l'apostrophe de L'orange n'est pas échapée.
Comment puis-je faire pour obtenir un code HTML généré ainsi :

<a href="..." onclick="montreimage('photo2.jpg','L\'orange')...

C'est sans doute très simple mais j'ai la tête comme une calebasse avec tous
ces guillemets simples et doubles imbriqués... ;-)
Merci.

--
A'tchao

Le Fou
http://perso.club-internet.fr/ehiller/
http://club.exocet.free.fr/
http://www.ffessm-cd84.com/

6 réponses

Avatar
Guillaume Bouchard
Le Fou wrote:
$legendes = array('...', 'L'orange', '...');


<a href="..." onclick="montreimage('photo2.jpg','L'orange')...


addslashes() est ton n'ami pour la vie (enfin tout le temps ou tu
utilisera php)

--
Guillaume.

Avatar
Eric
Salut, j'ai un petit problème avec l'échappement d'une apostrophe :
Une variable dans une ARRAY qui contient une apostrophe :

$legendes = array('...', 'L'orange', '...');

J'utilise ensuite cette variable dans une fonction JavaScript,
montreimage()

et mon PHP écrit une ligne HTML :

echo '<a href="..." onclick="montreimage(''.$photos[$i].'',
''.$legendes[$i].''); return false;"><img src="..."></a>'."n";


<a href="..." onclick="montreimage('photo2.jpg','L'orange')...

Ce qui génère une erreur car l'apostrophe de L'orange n'est pas échapée.
Comment puis-je faire pour obtenir un code HTML généré ainsi :

<a href="..." onclick="montreimage('photo2.jpg','L'orange')...

C'est sans doute très simple mais j'ai la tête comme une calebasse avec
tous

ces guillemets simples et doubles imbriqués... ;-)
Merci.


Soit tu codes en dur un antislashe devant ton truc : 'L'orange'
Soit tu utilise la fonction addslashes()
echo(addslashes('L'orange'));

Avatar
Antoine Dinimant
echo '<a href="..." onclick="montreimage(''.$photos[$i].'',
''.$legendes[$i].''); return false;"><img src="..."></a>'."n";


perso, je préfère str_replace à addslashes qui va mettre des en trop


echo '<a href="..." onclick="montreimage(''.$photos[$i].'',
''.
str_replace("'", "'", $legendes[$i])
.'');

return false;"><img src="..."></a>'."n";

Avatar
Leonick
"Antoine Dinimant" a écrit dans le message de
news:
echo '<a href="..." onclick="montreimage(''.$photos[$i].'',
''.$legendes[$i].''); return false;"><img src="..."></a>'."n";


perso, je préfère str_replace à addslashes qui va mettre des en trop


echo '<a href="..." onclick="montreimage(''.$photos[$i].'',
''.
str_replace("'", "'", $legendes[$i])
.'');

return false;"><img src="..."></a>'."n";
Autre solution, remplacer les ' <touche 4> par ` <touche Alt Gr 7>


Leonick
http://bike-and-rain-en-irlande.champignytriathlon.org les photos et le récit
d'une ballade cyclotouristique en Irlande


Avatar
Le Fou
Merci à tous pour vos réponses pertinantes !
Je m'y remets ;-)

--
A'tchao

Le Fou
http://perso.club-internet.fr/ehiller/
http://club.exocet.free.fr/
http://www.ffessm-cd84.com/
Avatar
Antoine Dinimant
Autre solution, remplacer les ' <touche 4> par ` <touche Alt Gr 7>


argh ! je suis désolé, mais c'est un truc à passer pour un analphabête
auprès de tous tes internautes ! c'est un peu comme si tu remplaçais
tous les é par des è ou toutes les virgules par des points-virgules !