Remplacer texte par image avec str_replace - PHP - Programmation
Marsh Posté le 08-09-2009 à 05:09:25
en remplacant d'abord les mots les plus longs puis en finissant par remplacer les mots les plus courts
Marsh Posté le 08-09-2009 à 12:04:54
utilise la fonction strtr() qui ne fera pas deux fois le remplacement
Marsh Posté le 08-09-2009 à 13:11:26
pour info, str_replace est capable de travailler avec des tableaux de remplacements
Code :
|
Je ne sais pas si l'ordre des chaînes à remplacer à une importance : à tester.
Marsh Posté le 08-09-2009 à 13:28:13
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 : |
et donc au coup suivant tu pourras pas remplacer "tissou" par "bar"
Marsh Posté le 08-09-2009 à 16:41:38
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) ; |
avec un texte genre $t = "tis tissou";
tu va avoir
1 : tis <img src="images/=tissou.gif" alt="" class="" /> |
le mieux ca serai a coup de regexp, mais y'a surment une autre vision a avoir sur ton probleme
Marsh Posté le 08-09-2009 à 16:47:40
gatsu35 a écrit : l'ordre des chaines à une importance car si j'ai une phrase du type :
|
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
Marsh Posté le 08-09-2009 à 16:57:54
stealth35 a écrit : |
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
Marsh Posté le 08-09-2009 à 17:15:04
sauf que lui il garde tissou et tiss dans son texte, ton exemple marche uniquement si ca chaine est differente
Marsh Posté le 08-09-2009 à 17:40:46
ah oué, fuck
bon à coup de regexp dans ce cas
Marsh Posté le 08-09-2009 à 17:41:45
<?php |
plus cas completer $rep avec ce que tu veux
Marsh Posté le 08-09-2009 à 17:49:18
Merci a tous pour vos réponses.
J'ai testé la ligné de rufo et ça fonctionne bien!!
thanks!
Marsh Posté le 08-09-2009 à 17:55:01
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
Marsh Posté le 08-09-2009 à 18:01:19
d'où ma question sur l'ordre pour str_replace quand on utilise les tableaux...
Marsh Posté le 08-09-2009 à 18:05:25
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
Marsh Posté le 08-09-2009 à 02:33:22
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.
$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