[php]str_replace texte par image

Résolu/Fermé
maxime_B
Messages postés
788
Date d'inscription
mardi 14 juin 2005
Statut
Membre
Dernière intervention
15 juin 2010
- 3 sept. 2006 à 17:09
 lola - 3 août 2010 à 19:47
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

Ssylvainsab
Messages postés
2884
Date d'inscription
samedi 29 juillet 2006
Statut
Modérateur
Dernière intervention
15 août 2020
824
4 sept. 2006 à 17:27
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.
0
maxime_B
Messages postés
788
Date d'inscription
mardi 14 juin 2005
Statut
Membre
Dernière intervention
15 juin 2010
55
4 sept. 2006 à 17:39
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ù??
0
Ssylvainsab
Messages postés
2884
Date d'inscription
samedi 29 juillet 2006
Statut
Modérateur
Dernière intervention
15 août 2020
824
5 sept. 2006 à 17:48
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.
0
maxime_B
Messages postés
788
Date d'inscription
mardi 14 juin 2005
Statut
Membre
Dernière intervention
15 juin 2010
55
6 sept. 2006 à 20: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;
        }
0
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;
}
0
maxime_B
Messages postés
788
Date d'inscription
mardi 14 juin 2005
Statut
Membre
Dernière intervention
15 juin 2010
55
7 sept. 2006 à 10:40
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 ;)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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);
}
0
maxime_B
Messages postés
788
Date d'inscription
mardi 14 juin 2005
Statut
Membre
Dernière intervention
15 juin 2010
55
7 sept. 2006 à 22:19
ok merci je vais essayer ça
0
maxime_B
Messages postés
788
Date d'inscription
mardi 14 juin 2005
Statut
Membre
Dernière intervention
15 juin 2010
55 > maxime_B
Messages postés
788
Date d'inscription
mardi 14 juin 2005
Statut
Membre
Dernière intervention
15 juin 2010

9 sept. 2006 à 09:56
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..
0
maxime_B
Messages postés
788
Date d'inscription
mardi 14 juin 2005
Statut
Membre
Dernière intervention
15 juin 2010
55
12 sept. 2006 à 17:43
....
0
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
0
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
0
maxime_B
Messages postés
788
Date d'inscription
mardi 14 juin 2005
Statut
Membre
Dernière intervention
15 juin 2010
55
12 oct. 2009 à 18:02
Merci.
Oui, des apostrophes différents posaient problème.
0
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
0