[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
A voir également:

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 825
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 825
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