Problème smiley avec PHP
Résolu
nicos91
-
nicos91 -
nicos91 -
Bonjour,
Je suis entrain de développer un mini-chat en PHP permettant d'afficher des smileys. Pour cela j'utilise la fonction preg_replace();
Cela fonctionne parfaitement pour tous mes smileys sauf pour le coeur qui devrait s'afficher en tapant ceci : <3 probablement à cause de l'accolade !?
Comment corriger cette ligne pour faire fonctionner mon code ?
A titre d'indication, la ligne suivante fonctionne pour afficher un coeur en tapant (L)
Merci d'avance et bonne continuation ;)
Nicolas
Je suis entrain de développer un mini-chat en PHP permettant d'afficher des smileys. Pour cela j'utilise la fonction preg_replace();
Cela fonctionne parfaitement pour tous mes smileys sauf pour le coeur qui devrait s'afficher en tapant ceci : <3 probablement à cause de l'accolade !?
Comment corriger cette ligne pour faire fonctionner mon code ?
$msg = preg_replace("/<3/","<img src='coeur67.png' alt=\"<3\" >", $msg);
A titre d'indication, la ligne suivante fonctionne pour afficher un coeur en tapant (L)
$msg = preg_replace("/\\(L\\)/","<img src='coeur67.png' alt=\"(L)\" >", $msg);
Merci d'avance et bonne continuation ;)
Nicolas
A voir également:
- Problème smiley avec PHP
- Que signifie ce smiley --' ?? - Forum Mail
- Smiley 3 - Forum Mail
- Easy php - Télécharger - Divers Web & Internet
- Que signifie le smiley *-* ? ✓ - Forum Loisirs / Divertissements
- Smiley rectangle avec croix dedans ✓ - Forum Samsung
8 réponses
Peut etre que $msg a été protégée avec htmlspecialchars ? dans ce cas il faut utiliser & lt ; (sans les espaces) au lieu de < ?
Salut,
Il y a un problème dans la chaîne de remplacement.
Au niveau de ta balise ALT , remplace les doubles quotes, par des simples.
ça fonctionnera mieux :)
ps: utilise un éditeur avec une coloration syntaxique.
Il y a un problème dans la chaîne de remplacement.
Au niveau de ta balise ALT , remplace les doubles quotes, par des simples.
ça fonctionnera mieux :)
ps: utilise un éditeur avec une coloration syntaxique.
Dans ton alt, remplace le < par <.
Puis sache qu'une balise image soit être fermée :
<img src=... alt=... />
Puis sache qu'une balise image soit être fermée :
<img src=... alt=... />
Merci de vos réponses,
Cependant le problème persiste. Même en supprimant l'attribut alt (provisoirement) je n'arrive toujours pas à afficher l'image correspondante.
Cependant le problème persiste. Même en supprimant l'attribut alt (provisoirement) je n'arrive toujours pas à afficher l'image correspondante.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Désolé du retard :s
Voici le code en question :
Même en supprimant totalement l'attribut alt cela ne fonctionne pas, contrairement aux autres smileys...
Voici le code en question :
function smiley($msg) { $msg = preg_replace("/<3/","<img src='coeur67.png' />", $msg); $msg = preg_replace("/:D/","<img src='expr05.gif' alt=\":D\" />", $msg); $msg = preg_replace("/\\(L\\)/","<img src='coeur67.png' alt=\"(L)\" />", $msg); $msg = preg_replace("/\\(l\\)/","<img src='coeur67.png' alt=\"(l)\" />", $msg); return $msg; }
Même en supprimant totalement l'attribut alt cela ne fonctionne pas, contrairement aux autres smileys...
Salut,
De mémoire il faut entourer le premier paramètre de preg_replace() avec des dièses (#) !
Les parenthèses sont des métacaractères dans les expressions régulières. Je ne sais pas si c'est important mais échappe-les :
\( \) au lieu de ( )
Mais j'ai relu la queston de départ : tu veux remplacer les coeurs <3 par une image. Pourquoi l'as-tu entouré de slashs ( / ) ?
Ancienne ligne :
De mémoire il faut entourer le premier paramètre de preg_replace() avec des dièses (#) !
Les parenthèses sont des métacaractères dans les expressions régulières. Je ne sais pas si c'est important mais échappe-les :
\( \) au lieu de ( )
Mais j'ai relu la queston de départ : tu veux remplacer les coeurs <3 par une image. Pourquoi l'as-tu entouré de slashs ( / ) ?
Ancienne ligne :
$msg = preg_replace("/<3/","<img src='coeur67.png' />", $msg);Nouvelle ligne :
$msg = preg_replace("#<3#","<img src='coeur67.png' />", $msg);;-)
Merci encore ;)