Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2187 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Remplacer texte par image avec str_replace

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Remplacer texte par image avec str_replace

n°1922065
_kana_
Posté le 08-09-2009 à 02:33:22  profilanswer
 

Bonjour,
 
J'ai un petit bout de code qui fonctionnait a merveille permettant de remplacer des mots par des images,
 
Mais maintenant j'ai un conflit avec deux mots différents mais ayant les premières lettres similaires ce qui créer un conflit.
 

Citation :

$t = str_replace('tis' , '<img src="images/=tis.gif"  alt="" class="" />', $t) ;
$t = str_replace('tissou' , '<img src="images/=tissou.gif"  alt="" class="" />', $t) ;


 
le tis étant présent dans les 2 lignes ça pose problème pour le remplacement
 
comment contourner ça sans changer les mots a remplacer? merci

mood
Publicité
Posté le 08-09-2009 à 02:33:22  profilanswer
 

n°1922068
gatsu35
Blablaté par Harko
Posté le 08-09-2009 à 05:09:25  profilanswer
 

en remplacant d'abord les mots les plus longs puis en finissant par remplacer les mots les plus courts


---------------
Blablaté par Harko
n°1922140
jeff@be
Posté le 08-09-2009 à 12:04:54  profilanswer
 

utilise la fonction strtr() qui ne fera pas deux fois le remplacement

n°1922144
rufo
Pas me confondre avec Lycos!
Posté le 08-09-2009 à 13:11:26  profilanswer
 

pour info, str_replace est capable de travailler avec des tableaux de remplacements

Code :
  1. $t = str_replace(array("tissou", "tis" ), array('<img src="images/=tissou.gif"  alt="" class="" />', '<img src="images/=tis.gif"  alt="" class="" />'), $t);


Je ne sais pas si l'ordre des chaînes à remplacer à une importance : à tester.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°1922159
gatsu35
Blablaté par Harko
Posté le 08-09-2009 à 13:28:13  profilanswer
 

l'ordre des chaines à une importance car si j'ai une phrase du type :  
 
tissou fais des tis avec ses tis
 
et que je veux remplacer "tis" par "foo", et "tissou" par "bar"
si on remplace d'abord les "tis" en premier on aura  

Citation :


foosou fais des foo avec ses foo


et donc au coup suivant tu pourras pas remplacer "tissou" par "bar"


---------------
Blablaté par Harko
n°1922262
stealth35
Posté le 08-09-2009 à 16:41:38  profilanswer
 

gatsu35 a écrit :

en remplacant d'abord les mots les plus longs puis en finissant par remplacer les mots les plus courts

 

non ca marchera pas

 

si tu fais

 

$t = str_replace('tissou' , '<img src="images/=tissou.gif"  alt="" class="" />', $t) ;
$t = str_replace('tis' , '<img src="images/=tis.gif"  alt="" class="" />', $t) ;

 

avec un texte genre $t = "tis tissou";

 

tu va avoir

 

1 : tis <img src="images/=tissou.gif"  alt="" class="" />
2:<img src="images/=tis.gif"  alt="" class="" />  <img src="images/=<img src="images/=tis.gif"  alt="" class="" />sou.gif"  alt="" class="" />

  

le mieux ca serai a coup de regexp, mais y'a surment une autre vision a avoir sur ton probleme


Message édité par stealth35 le 08-09-2009 à 16:42:57
n°1922273
stealth35
Posté le 08-09-2009 à 16:47:40  profilanswer
 

gatsu35 a écrit :

l'ordre des chaines à une importance car si j'ai une phrase du type :  
 
tissou fais des tis avec ses tis
 
et que je veux remplacer "tis" par "foo", et "tissou" par "bar"
si on remplace d'abord les "tis" en premier on aura  

Citation :


foosou fais des foo avec ses foo


et donc au coup suivant tu pourras pas remplacer "tissou" par "bar"


 
bah non plus parce que y'a pu de tissou apres, faudrais
 
1 tissou fais des foo avec ses foo
2 bar fais des foo avec ses foo

n°1922281
gatsu35
Blablaté par Harko
Posté le 08-09-2009 à 16:57:54  profilanswer
 

stealth35 a écrit :


 
bah non plus parce que y'a pu de tissou apres, faudrais
 
1 tissou fais des foo avec ses foo
2 bar fais des foo avec ses foo


relis ce que tu as écris
 le but est d'obtenir ta phrase numéro 2
 
et donc si on commence le remplacement des mots par tis, on pourri letruc


---------------
Blablaté par Harko
n°1922295
stealth35
Posté le 08-09-2009 à 17:15:04  profilanswer
 

sauf que lui il garde tissou et tiss dans son texte, ton exemple marche uniquement si ca chaine est differente

n°1922306
gatsu35
Blablaté par Harko
Posté le 08-09-2009 à 17:40:46  profilanswer
 

ah oué, fuck :(
bon à coup de regexp dans ce cas :(


---------------
Blablaté par Harko
mood
Publicité
Posté le 08-09-2009 à 17:40:46  profilanswer
 

n°1922308
stealth35
Posté le 08-09-2009 à 17:41:45  profilanswer
 

<?php
 $t = 'tissou fais des tis avec ses tis';
 
 $rep = array('/(tis)\b/', '/(tissou)\b/');
 $new = '<img src="${0}.gif" alt="" class="">';
 
 echo preg_replace($rep, $new, $t);
?>


 
plus cas completer  $rep avec ce que tu veux


Message édité par stealth35 le 08-09-2009 à 17:41:57
n°1922311
_kana_
Posté le 08-09-2009 à 17:49:18  profilanswer
 

Merci a tous pour vos réponses.
 
J'ai testé la ligné de rufo et ça fonctionne bien!!
 
 
thanks!
 

n°1922313
stealth35
Posté le 08-09-2009 à 17:55:01  profilanswer
 

marche pas chez moi, le  tissou n'est pas pris en compte, si tu change l'ordre de tis et de tissou t'arrive au meme probleme


Message édité par stealth35 le 08-09-2009 à 17:56:21
n°1922315
rufo
Pas me confondre avec Lycos!
Posté le 08-09-2009 à 18:01:19  profilanswer
 

d'où ma question sur l'ordre pour str_replace quand on utilise les tableaux...


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°1922317
stealth35
Posté le 08-09-2009 à 18:05:25  profilanswer
 

rufo a écrit :

d'où ma question sur l'ordre pour str_replace quand on utilise les tableaux...


 
bah ouai, c'est pour ca je comprend pas pourquoi il dit que ca marche  :pt1cable:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Remplacer texte par image avec str_replace

 

Sujets relatifs
Affichage texte dans (fenêtre flottante?)Cherche a faire un défillement d'image
Afficher/cacher un texte toggle mootoolsRendre invisible une image
AJAX et effet sur image style Thickboxeffacement image
[XSLT] Intégrer une image SVG créée dynamiquementImage par dessus un applet flash
Comment convertir du code html en texte lisible"aplatir" une image en PHP GD
Plus de sujets relatifs à : Remplacer texte par image avec str_replace


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR