Remplacer un smiley :D par une image avec PHP / Mysql

Résolu/Fermé
Utilisateur anonyme - Modifié par Jeff le 23/10/2012 à 15:19
 ingénieur info - 13 avril 2013 à 15:23
Bonjour,

Je voudrais que quand j'enregistre dans le comptenu d'un champs mysql
:D
, quand grâce à une fonction php, j'affiche le comptenu, qu'il me remplace
:D
par un smiley (une image)

Quel est cette fonction ?
Si vous avez compris, merci de m'aider...
Lucas

10 réponses

zoby44
Messages postés
817
Date d'inscription
vendredi 3 novembre 2006
Statut
Membre
Dernière intervention
7 avril 2010
197
11 mars 2009 à 17:01
Avec ca ca fonctionne :
<?php 
	$mess = stripslashes($donnees['titre']);
	$mess = preg_replace('#:D#i','<img src="img/smiley/biggrin.gif">', $mess);
	$mess = preg_replace('#;\)#','<img src="img/smiley/icon_wink.gif">', $mess);
	echo $mess;
?>

Perso je préfère preg_replace à str_replace, je trouve que le filtre est plus simple a faire. Dans l'exemple, le :D est insensible a la casse. Si tu veux le rendre sensible, enlève le i après le #
La tu peux créer plein de smiley, mais attention de bien mettre un \ devant
# ! ^ $ ( ) [ ] { } ? + * . \ |
si tu veux que ces caractères soient pris en compte.
5
zoby44
Messages postés
817
Date d'inscription
vendredi 3 novembre 2006
Statut
Membre
Dernière intervention
7 avril 2010
197
11 mars 2009 à 15:03
Salut, met un \ devant le : ça devrais mieux marcher.
1
Utilisateur anonyme
11 mars 2009 à 17:07
Merci sa fonctionne
1
zoby44
Messages postés
817
Date d'inscription
vendredi 3 novembre 2006
Statut
Membre
Dernière intervention
7 avril 2010
197
10 mars 2009 à 22:09
Salut, tu peux le faire avec preg_replace :

$chaine = 'fsjhlfk dhgsdg jdhsfs kgjdfhljkg dfhlgk :d hskjqflh skdfl';
$smile = '<img src="smile.png">';
$chaine = preg_replace('#\:D#',$smile, $chaine);
echo $chaine;


Si tu veux que :D et :d affiche le même smiley, remplace '#\:D#' par '#\:D#i'
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
11 mars 2009 à 12:54
C'est bon, sa fonctionne. Merci !
0
Utilisateur anonyme
11 mars 2009 à 13:19
J'ai mis :

<?php $recup = stripslashes($donnees['titre']);
                   $smile1 = '<img src="img/smiley/biggrin.gif" alt=":D" />';
                   $chaine = preg_replace('#\:D#',$smile1, $recup);
                   echo $chaine;
           ?>


Sa fonctionne mais comment faire pour remplacer plusieurs mots différents en différents smiley ??
0
Utilisateur anonyme
11 mars 2009 à 13:29
J'ai mis à la place :

<?php $recup = stripslashes($donnees['titre']);
$mess = str_replace(":d","<img src='img/smiley/biggrin.gif' />",$recup);
$mess = str_replace(";)","<img src='img/smiley/icon_wink.gif' />",$recup);
echo $mess;
?>



Quand je met ;), sa remplace par un smiley maus quand j'écrit :
:d
, sa ne remplace pas par l'image.

Quel qu'un sait pourquoi ??
0
Utilisateur anonyme
11 mars 2009 à 16:36
J'ai essayé :


<?php $recup = stripslashes($donnees['titre']);
$mess = str_replace("\:d","<img src='img/smiley/biggrin.gif' />",$recup);
$mess = str_replace("\;)","<img src='img/smiley/icon_wink.gif' />",$recup);
echo $mess;
?>


Mais sa ne marche pas non plus.
0
remplace le deuxième $recup par $mess ;).
0
Bonjour,

J'ai repris le code qui fonctionne parfaitement mais j'ai des retours chariots avant et après le smiley.

Exemple :

Je voudrais : "Ceci est un test (image :D) !!!"

et j'obtiens :

"Ceci est un test
(image :D)
!!!"

Pouvez vous m'aider ?

Voici le code :

<?php $mess = stripslashes($row_Recordset1['message']);
$mess = preg_replace('#:D#i','<img src="smileys/6.gif">', $mess);
$mess = preg_replace('#:\)#','<img src="smileys/1.gif">', $mess);
echo $mess;
?>

Merci d'avance
0
bonjour,


vous installez ce code dans quel fichier ?


parce que moi je voudrais rajouter une images dans la toolbar de fluxbb et le problème c'est que je n'est pas le code clavier pour la faire apparaître est ce que ce code pourrait marcher pour moi , merci de votre aide ?
0