[php]str_replace texte par image

[Résolu/Fermé]
Signaler
Messages postés
788
Date d'inscription
mardi 14 juin 2005
Statut
Membre
Dernière intervention
15 juin 2010
-
 lola -
salut

j'ai une petite fonction pour mettre des images à la place de certains bouts de texte..
mais voilà qu'est-ce que je dois faire de la variable de la fonction...
l'utilitée serait que quand on écrit, par exemple "merci", une image "merci" serait mis à cet endroit..mais je ne sais pas ou placer la variable..

quelqu'un peut m'aider???

merci

9 réponses

Messages postés
2884
Date d'inscription
samedi 29 juillet 2006
Statut
Modérateur
Dernière intervention
15 août 2020
818
Salut.

J'ai pas bien compris ce que tu veux faire.
Et si tu veux que quand quelqu'un écrive "merci" sur un forum ou un livre d'or (par exemple) , le texte soit directement remplacé par une image, c'est impossible en php, car le client ne connait pas le php.

Par contre, si tu veux mettre une image a la place, mais APRES, la ca doit être possible en faisant un script qui remplace certains mots par les images correspondantes, en php.
Messages postés
788
Date d'inscription
mardi 14 juin 2005
Statut
Membre
Dernière intervention
15 juin 2010
54
oui ça alors...
je ne pensais pas avoir aussi mal expliqué, mais bon c'est comme tu dis...reste donc cette variable à définir..mais où??
Messages postés
2884
Date d'inscription
samedi 29 juillet 2006
Statut
Modérateur
Dernière intervention
15 août 2020
818
Salut.

Peut-être en faisant une fonction comme :
<?php
if (isset($texte /*xxxx*/ "merci"))/*si le texte contient "merci"*/
     {
     "merci" = '<img src="merci.jpg" />';
     }
elseif (isset($texte /xxx*/ "bonjour"))/*si le texte contient "bonjour"*/
     {
     "bonjour" = '<img src="bonjour.jpg" />';
     }
elseif...etc


Et puis tu fais autant de "elseif" que tu as d'images, qui correspondent a chaque mot.

Mais je suis nul en PHP, ceci n'est qu'un "schéma".
Il faudrait également remplacer /*xxx*/ par une fonction qui voit si la variable CONTIENT un mot.

Ensuite, il faut transformer seulement le mot en image, et pas tout le texte correspondant.

Mais bon....
Comme je l'ai dit, je suis nul en PHP, attends l'aide de quelqu'un qui s'y connaisse.
Messages postés
788
Date d'inscription
mardi 14 juin 2005
Statut
Membre
Dernière intervention
15 juin 2010
54
j'ai essayé de la façon suivante, mais quand le message apparaît, les caractères ne sont pas remplacés par l'image..
		function image($message)
        {

        $message = str_replace("merci", "<img src='$RACINE/images/merci.jpg' border='0'>", $message);
        $message = str_replace("lol", "<img src='$RACINE/images/lol.jpg' border='0'>", $message);

        return $message;
        }
Slt,

Utilise preg_replace() si le nom de ton image correspond toujours au texte.
Et ta variable $RACINE n'est pas déclarée dans ta fonction, ni dans un paramètre.

Soit tu la passes en argument, soit tu utilises global.
$RACINE = xxx;
global $RACINE;

function image($message)
{
    global $RACINE;
    $message= preg_replace('#^([a-z]+)$#', "<img src='$RACINE/images/$1.jpg' border='0'>');
    return $message;
}
Messages postés
788
Date d'inscription
mardi 14 juin 2005
Statut
Membre
Dernière intervention
15 juin 2010
54
salut et merci

ma variable $RACINE est déclarée plus haut dans mon code ".."
mais le nom de l'image ne correspond pas toujours au texte.c'était un exemple pour ne pas compliquer mon cas d'avantage ;)
Dans ce cas là, reste avec str_replace()

Et même si ta variable est déclarée avant ta fonction, elle n'est pas accessible à l'intérieur de celle-ci.

Exemple tout bête :
$var = 'ma variable';

function affiche()
{
    return $var;
}

echo affiche();

Ca n'affichera rien, car $var n'existe pas dans la fonction.

Tandis que :
$var = 'ma variable';
global $var;

function affiche()
{
    global $var;
    return $var;
}

echo affiche();
Ou encore :
function affiche($argument)
{
    return $argument;
}

$var = 'ma variable';
echo affiche($var);
Affichera bien ma variable.

Pour le str_replace, utilise 2 arrays:

function image($message)
{
  global $RACINE;
  $in = array('merci', 'lol');
  $out = array('<img src="' . $RACINE . '/images/merci.jpg" border="0">',
               '<img src="' . $RACINE . '/images/lol.jpg" border="0">');  
  return str_replace($in, $out, $message);
}
Messages postés
788
Date d'inscription
mardi 14 juin 2005
Statut
Membre
Dernière intervention
15 juin 2010
54
ok merci je vais essayer ça
Messages postés
788
Date d'inscription
mardi 14 juin 2005
Statut
Membre
Dernière intervention
15 juin 2010
54 >
Messages postés
788
Date d'inscription
mardi 14 juin 2005
Statut
Membre
Dernière intervention
15 juin 2010

re

j'ai donc essayé le système qu'on m'a proposé...et ça ne fonctionne pas. Pourtant, j'ai lu de la doc sur cette façon d'utiliser les array dans le str_replace, mais ça ne fonctionne toujours pas..
bizarre, bizarre..
Messages postés
788
Date d'inscription
mardi 14 juin 2005
Statut
Membre
Dernière intervention
15 juin 2010
54
....
Salut ! voilà j'ai el même preoblème :/
<?php
function moulinette()
{
$contenu = str_replace("^^","<img src='images/smiley/banale.JPG'/>",$contenu);
$contenu = str_replace('-_-',"<img src='images/smiley/degouter.JPG'/>",$contenu);
$contenu = str_replace(':D',"<img src='images/smiley/super_content.JPG'/>",$contenu);
$contenu = str_replace(';)',"<img src='images/smiley/clin_oeil.JPG'/>",$contenu);
$contenu = str_replace(':(',"<img src='images/smiley/pas_content.JPG'/>",$contenu);
$contenu = str_replace(':p',"<img src='images/smiley/langue.JPG'/>",$contenu);
$contenu = str_replace(';p',"<img src='images/smiley/langue_clin.JPG'/>",$contenu);
$contenu = str_replace(':s',"<img src='images/smiley/dsl.JPG'/>",$contenu);
$contenu = str_replace('xD',"<img src='images/smiley/xD.JPG'/>",$contenu);
}
?>

Et rien ne change :/ .
Enfin si enfaite quand je passe la fonction il me remplace tout par rien xD
Salut, je ne sais pas si ça a un impacte, mais essaye d'utiliser les mêmes apostrophes pour le changement entre texte php et texte string.
Ex en ta 2ème ligne:
$contenu = str_replace('-_-',"<img src='images/smiley/degouter.JPG'/>",$contenu);
modifier en
$contenu = str_replace('-_-','<img src="images/smiley/degouter.JPG"/>',$contenu);


Pi sinon comment peux-tu accèder au $contenu de la fonction si tu ne le passe ni en paramètre au début (function moulinette($contenu) ), ni en "return" à la fin (return $contenu;) ?!!

Bonne soirée
Messages postés
788
Date d'inscription
mardi 14 juin 2005
Statut
Membre
Dernière intervention
15 juin 2010
54
Merci.
Oui, des apostrophes différents posaient problème.
je ne sais pas vpous aider mais moi je recherche des emoticones certains mot par exemple le mot pas par 2 chaussures qui marchent ou trouver ses emoticones merci