petit probleme de eregi_replace :( [PHP] - PHP - Programmation
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.
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' ?)
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 ?
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é
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 ?
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