[preg_replace] ne remplace pas les occurences sur une même ligne

ne remplace pas les occurences sur une même ligne [preg_replace] - PHP - Programmation

Marsh Posté le 19-07-2009 à 18:14:21    

Bonjour,
 
je rencontre un problème avec une regex.
 
Mon but est de remplacer les liens :

Code :
  1. <a href="key-tourdefrance-2008.html">
  2. // vers -->
  3. <a href="/tags/tourdefrance-2008">


 
Ma fonction qui va bien :  

Code :
  1. $final = preg_replace('#href="key-(.*).html"#','href="/tags/$1" rel="tag"',$text,-1,$count);
  2. echo 'Occurences trouvées : ' . $count;


 
Le problème, c'est que lorsque plusieurs liens se trouvent sur la même ligne, il ne traite que le premier lien.
J'ai essayé les options s (singleline) et m (multiline) mais rien n'y fait.
 
Merci pour votre aide.

Reply

Marsh Posté le 19-07-2009 à 18:14:21   

Reply

Marsh Posté le 19-07-2009 à 20:17:26    

J'ai trouvé :)
 
L'option U, pour empecher à l'opérateur "." d'être trop gourmand et de dépasser mon ".html"
Quant au fait que ça fonctionne sur plusieurs lignes, c'est que justement cette gourmandise s'arrête à chaque ligne. :)

Reply

Sujets relatifs:

Leave a Replay

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