[PHP] petit probleme de eregi_replace :(

petit probleme de eregi_replace :( [PHP] - PHP - Programmation

Marsh Posté le 29-01-2004 à 19:02:52    

J'ai ça :
 
$string='<a>le texte</a> autre chose <a>un autre texte</a>';
 
je fais un eregi_replace
du type '<a>(.*)</a>',"$1",$string
ça me retourne
le texte</a> autre chose <a>un autre texte
au lieu de "le texte" "un autre texte"....
 
 
Help... je suis très mauvai en Ereg :'(

Reply

Marsh Posté le 29-01-2004 à 19:02:52   

Reply

Marsh Posté le 29-01-2004 à 19:33:40    

(.*) va vouloir récupérer le maximum de caractère donc dans ton cas, il va prendre du premier <a> jusqu'au dernier </a>.
Tu peux sois faire à la place (.*?) ce qui va inciter à prendre le moins possible de caractères, mais si tu sais qu'il n'y aura aucune autre balises entre un <a> et un </a> (autre que <a> donc), je te conseille de faire ([^<]*) ce qui essayera de prendre le maximum de caractère sans '<' ce qui correspondrait au début d'une autre balise.

Reply

Marsh Posté le 29-01-2004 à 19:39:33    

:)
et ej recupère comment mes différentes chaines qui correspondent ?
si dans la meme string j ai plusieurs chaines qui correspondent au masque
- j'obtiendrai que la premiere ?
- je l'ai aurrait toutes 'collées' les unes aux autres ?
- comment les obtenir toutes séparrées ? ( remplacer par '$1\n' ?)

Reply

Marsh Posté le 29-01-2004 à 19:54:15    

bah eregi_replace va remplacer toutes les occurences .. mais qu'est ce que tu veux en résultat exactement ?

Reply

Marsh Posté le 29-01-2004 à 20:00:12    

recuperer juste le texte entre <a> et </a> et enlever tut le reste
 
sauf que je viens d'essayer et :

eregi_replace('^(.*)<a href="(.*)">-download-</a>(.*)$','\\2',$sss);


Me renvoi que le dernier élément trouvé :(

Reply

Marsh Posté le 29-01-2004 à 20:07:52    

Déjà dans ton premier exemple ... tu aurais aussi récupérer le texte entre </a> et <a> ... en fait ce que tu veux c'est preg_match_all qui va te permettre d'extraire toutes les parties en <a> et </a> (avec la bonne expression régulière).
 
Dans ton dernier exemple, tu veux récupérer l'url pour chaque href ?

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed