RempLacer des caracteres par des images...

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : RempLacer des caracteres par des images...

Re: RempLacer des caracteres par des images...

par FuZZyLine » 21 oct. 2009, 15:43

Salut,
Bonjour à tous,
Je cherche la solution la plus simple pour remplacer des caractères dans une chaine, par leur équivalents en image...
ainsi la chaine "rrw" contenue dans la variable $chaine doit être convertie en "<img src='r.gif'><img src='r.gif'><img src='w.gif'>"...
Comment dois-je m'y prendre ?
Merci d'avance pour votre aide...
Pourquoi ne pas faire ainsi?
J'ai l'impression que vous vous enquinez pour pas grand chose les gens.
<?php
  // Pattern de recherche
  //
  $pattern = "#([\w])#Umis";

  // Chaine en exemple qui peut être n'importe quel char, Attention: ne peut marcher si
  // tu cible plus d'un caractère.
  //
  $string = "azer";

  // Lance le remplacement
  //
  $res = preg_replace($pattern, "<img src=\"$1\" alt=\"Titre de l'image : $1\" />", $string);

  // Affichage le résultat
  //
  echo $res;
?>
Fait et testé, ca marche mais différents points à controller avant une mise en prod sèrieuse.
Désolé, je n'ai que survolé le topic, si une solution identique ou aprochante a été posée: Autant pour moi ;)

@+ bon code ;)

Re: RempLacer des caracteres par des images...

par fab » 21 oct. 2009, 15:05

Avant la boucle tu fais
$cost = '';
et dans la boucle
$cost .= "<img src='".$invoc[$i].".gif' />";

Re: RempLacer des caracteres par des images...

par FURAX69 » 21 oct. 2009, 13:22

Après une vérification rapide,

Code : Tout sélectionner

print "<img src='".$invoc[$i].".gif' />";
Affiche bien <img src="3.gif"><img src="W.gif"><img src="W.gif">

Mais si je transfert le résultat de remplacement dans ma variable

Code : Tout sélectionner

$cost = "<img src='".$invoc[$i].".gif' />";
on dirait que ça ne prend qu'un caractère (le dernier je pense)...

Comment faire pour bien transmettre toute la chaine d'images ?

Re: RempLacer des caracteres par des images...

par FURAX69 » 21 oct. 2009, 12:47

Ok, ça fonctionne partiellement avec ceci :

Code : Tout sélectionner

for ($i=0; $i<strlen($invoc); $i++) { @$cost = "<img src='".$invoc[$i].".gif' />"; }
MAIS....

si par exemple $invoc = "3WW"

$cost ne me retourne que <img src="W.gif''> et non <img src="3.gif''><img src="W.gif''><img src="W.gif''>

Un truc doit clocher... Mais je ne comprends pas le fonctionnement du "for"... HELP :priere:

Re: RempLacer des caracteres par des images...

par @rthur » 21 oct. 2009, 10:41

Bon, si j'écris ceci :

Code : Tout sélectionner

$cost = str_replace('<img src="w.gif">','W',$invoc);
Qu'est-ce qui ne va pas ?
Vérifie l'ordre des paramètres : http://php.net/str_replace
Ca ne marche pas non plus et je pense d'ailleurs que cela ne peut pas convenir
Soit tu penses mal, soit ta question de départ est mal formulée ;)
J'ai écris ceci :

for ($i=0; $i<strlen($invoc); $i++)
{
print "<img src='".$variable[$i].".gif' />";
}
Mais l'affichage provoque 3 images manquantes... toujours avec $invoc = "2WW"
Tu as fait le remplacement à moitié dans mon exemple...
$variable[$i] devient $invoc[$i]
Car ce système doit traiter la chaine entière et non pas caractère par caractère...
Si tu veux obtenir quelque chose du genre : "<img src='r.gif'><img src='r.gif'><img src='w.gif'>" alors le plus simple est de traiter ton texte caractère par caractère pour ajouter les balises qui vont bien.

Re: RempLacer des caracteres par des images...

par FURAX69 » 21 oct. 2009, 08:51

Bonjour,

Personnellement je ferrais ça avec un for:
$variable="toto";
for ($i=0; $i<strlen($variable); $i++) {
     print "<img src='".$variable[$i].".gif' />";
}
Je n'ai pas testé ce code mais c'est pour donner l'idée...

Ca ne marche pas non plus et je pense d'ailleurs que cela ne peut pas convenir

J'ai écris ceci :

for ($i=0; $i<strlen($invoc); $i++)
{
print "<img src='".$variable[$i].".gif' />";
}
Mais l'affichage provoque 3 images manquantes... toujours avec $invoc = "2WW"
Car ce système doit traiter la chaine entière et non pas caractère par caractère...


HELP !

Re: RempLacer des caracteres par des images...

par FURAX69 » 21 oct. 2009, 08:46

Bon, si j'écris ceci :

Code : Tout sélectionner

$cost = str_replace('<img src="w.gif">','W',$invoc);
Alors que le contenu de $invoc est par exemple "2WW"... L'affichage de $cost reste "2WWW"

Qu'est-ce qui ne va pas ?

Re: RempLacer des caracteres par des images...

par @rthur » 20 oct. 2009, 23:51

Bonjour,

Personnellement je ferrais ça avec un for:
$variable="toto";
for ($i=0; $i<strlen($variable); $i++) {
     print "<img src='".$variable[$i].".gif' />";
}
Je n'ai pas testé ce code mais c'est pour donner l'idée...

Re: RempLacer des caracteres par des images...

par fab » 20 oct. 2009, 22:55

Bah tu mets une variable à la place de toto ou est le problème?

Re: RempLacer des caracteres par des images...

par FURAX69 » 20 oct. 2009, 22:54

J'ai oublié de préciser que la chaine "rrw" peut varier... En fait, elle provient d'un champ de bdd et peux contenir un nombre différents de caractères... C'est pour cela que je ne sais pas trop comment écrire cela avec str_replace()

Re: RempLacer des caracteres par des images...

par fab » 20 oct. 2009, 22:43

C'est là même.... str_replace('totot','tata',$string)

Re: RempLacer des caracteres par des images...

par FURAX69 » 20 oct. 2009, 22:22

J'ai pensé à str_replace()

Mais comment l'utiliser pour des caractères multiples ???

quelle serait la syntaxe ?

Re: RempLacer des caracteres par des images...

par fab » 20 oct. 2009, 22:17

str_replace() ?

RempLacer des caracteres par des images...

par FURAX69 » 20 oct. 2009, 22:16

Bonjour à tous,

Je cherche la solution la plus simple pour remplacer des caractères dans une chaine, par leur équivalents en image...
ainsi la chaine "rrw" contenue dans la variable $chaine doit être convertie en "<img src='r.gif'><img src='r.gif'><img src='w.gif'>"...

Comment dois-je m'y prendre ?

Merci d'avance pour votre aide...