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

10 réponses

  1. zoby44 Messages postés 868 Statut Membre 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
  2. zoby44 Messages postés 868 Statut Membre 199
     
    Salut, met un \ devant le : ça devrais mieux marcher.
    1
  3. zoby44 Messages postés 868 Statut Membre 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
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. Utilisateur anonyme
     
    C'est bon, sa fonctionne. Merci !
    0
  6. 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
  7. 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
  8. 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
    1. ingénieur info
       
      remplace le deuxième $recup par $mess ;).
      0
  9. 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
  10. 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