2009-12-27 7 views
0

je veux changer le mot :)) à un smily img avant de l'afficher à partir de la base de données avec php comment puis-je faireremplacer certaines images avec certains mots

+0

http://www.hawkee.com/snippet/1834/ – miku

+0

@MYYN, cet exemple utilise la 'ereg_' fonction. 1) Je ne vois pas le besoin de regex dans ce cas, et 2) lors de l'utilisation de regex, il est conseillé de choisir la famille 'preg_' sur le' ereg_' car ce dernier est déjà obsolète ou le sera bientôt. –

Répondre

3

Une solution serait d'utiliser la fonction str_replace.

Par exemple (en utilisant « :-) », que je l'aime plus que votre « :)) » - seulement une question de goût ^^ vous jusqu'à utiliser la « bonne »):

$str = "This is a sentence with a smiley :-)"; 

$new_str = str_replace(
    array(
     ':-)', 
    ), 
    array(
     '<img src="smiley.png" alt=":-)" />' 
    ), 
    $str 
); 

echo $new_str; 

vous obtiendrez ainsi cette sortie:

This is a sentence with a smiley <img src="smiley.png" alt=":-)" /> 

-à-dire le smiley a été remplacé par une image.


Notez que j'ai utilisé un tableau pour le premier et le second paramètre, lorsque vous appelez str_replace: si vous avez d'autres smileys, vous pouvez simplement les ajouter à ces deux tableaux (le premier réseau étant la chaîne « recherchée » , et le second pour le "remplacement").

(Ce que je veux dire est: pas besoin d'appeler str_replace plusieurs fois: une fois, en utilisant des tableaux, devrait être suffisant pour plusieurs remplacements)


Et, comme sidenote: je l'original " texte "du smiley pour l'attribut alt de l'étiquette img: de cette façon, si l'image ne peut pas être affichée, le navigateur affichera la version textuelle du smiley - ce qui est mieux que rien.

+0

@Pascal MARTIN: Battez-moi. – BenTheDesigner

+0

merci beaucoup, je l'ai fait –

+0

Vous êtes les bienvenus :-) Amusez-vous! –

1

Vous pouvez utiliser quelque chose comme:

str_replace(':))', '<img src="path to your image" title="image title" />', $string); 

Si vous voulez remplacer plusieurs « » smileys, les tableaux d'utilisation:

$find = array(
      ':)', 
      ':(' 
     ); 
$replace = array(
       '<img src="path to happy image" title="" />', 
       '<img src="path to sad image" title="" />'); 
      ); 
str_replace($find, $replace, $string); 
0

Vous pouvez utiliser quelque chose comme ce qui suit. Créez un nouveau remplacement pour chaque image que vous avez.

$message = str_replace(":)", "<img src='happy.png' alt=':)'/>", $message); 
$message = str_replace(":(", "<img src='unhappy.png' alt=':('/>", $message); 

Cela transforme $message"I'm happy :)" en "I'm happy <img src='happy.png' alt=':)'/>". La balise alt révèle le smiley original lorsque les utilisateurs ne voient pas les images.

Questions connexes