IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Une fonction qui utilise str_replace pour smiley


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 91
    Points : 44
    Points
    44
    Par défaut Une fonction qui utilise str_replace pour smiley
    Bonsoir à tous, je viens de trouver une fonction pour gérer les smiley (dans mon cas c'est pour un tchat) mais le problème c'est que ça affiche juste le texte original sans afficher l'image et je ne vois pas pourquoi, voila la fonction et mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    <?php
    function smileys($texte)
    {
    	$in = array(
    	           ":-((" , // en colère
    	           ":-(" , // déçu
    	           ":-)", //sourire
    	           ":-D", // mort de rire
    	           ":-p", // passe la langue
    	           "xd",
    	           );
     
    	$out = array(
    	           '<img src="en_colere.png" alt="" />',
    	           '<img src="pas_content.png" alt="" />',
    	           '<img src="clin_d-oeil.png" alt="" />',
    	           '<img src="mort_de_rire.png" alt="" />',
    	           '<img src="tire_la_langue.png" alt="" />',
    	           '<img src="images/smiley/xd.png" alt="xd" />',
    	           );
     
    	return str_replace($in,$out,$texte);
    }
    ?>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $requete = mysql_query("SELECT * from tchat ORDER BY id DESC LIMIT 0,20");
     
    while($donnees = mysql_fetch_assoc($requete))
    {
    	smileys($donnees['message']);
    	echo date("H:i:s" ,$donnees['timestamp']).' <b>'.htmlspecialchars($donnees['pseudo']).'</b> '.htmlspecialchars($donnees['message']).'<br />';
    }
    J'essaye juste avec "xd" pour voir mais rien du tout.

    Merci d'avance.

  2. #2
    Membre éclairé Avatar de micetf
    Homme Profil pro
    Professeur des Ecoles
    Inscrit en
    Mai 2009
    Messages
    557
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Professeur des Ecoles
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2009
    Messages : 557
    Points : 831
    Points
    831
    Par défaut
    $donnees['message'] n'est pas passé par référence,
    tu dois donc récupérer ce que renvoie smileys si tu veux avoir ton image.
    Mais si après tu le passes à travers le htmlspecialchars,
    c'est le html qui va s'afficher.
    Je te propose donc cette solution.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $requete = mysql_query("SELECT * from tchat ORDER BY id DESC LIMIT 0,20");
     
    while($donnees = mysql_fetch_assoc($requete))
    {
    	echo date("H:i:s" ,$donnees['timestamp']).' <b>'.htmlspecialchars($donnees['pseudo']).'</b> '.smileys(htmlspecialchars($donnees['message'])).'<br />';
    }
    Fred

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    453
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 453
    Points : 550
    Points
    550
    Par défaut
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    smileys($donnees['message']);

    =>

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $donnees['message'] = htmlspecialchars(smileys($donnees['message']));

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 91
    Points : 44
    Points
    44
    Par défaut
    Merci beaucoup ^^ ca fonctionne

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 10
    Dernier message: 05/08/2010, 12h02
  2. Réponses: 4
    Dernier message: 22/11/2009, 23h35
  3. Changer une fonction qui utilise une liste par un tableau!
    Par sara21 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 03/05/2007, 13h18
  4. Réponses: 13
    Dernier message: 05/03/2007, 09h29
  5. Réponses: 15
    Dernier message: 26/03/2006, 12h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo