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

Résolu
Utilisateur anonyme -  
 ingénieur info -
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
A voir également:

10 réponses

zoby44 Messages postés 818 Date d'inscription   Statut Membre Dernière intervention   199
 
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 818 Date d'inscription   Statut Membre Dernière intervention   199
 
Salut, met un \ devant le : ça devrais mieux marcher.
1
Utilisateur anonyme
 
Merci sa fonctionne
1
zoby44 Messages postés 818 Date d'inscription   Statut Membre Dernière intervention   199
 
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
 
C'est bon, sa fonctionne. Merci !
0
Utilisateur anonyme
 
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
 
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
 
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
ingénieur info
 
remplace le deuxième $recup par $mess ;).
0
Floriian78
 
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
nono18120
 
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