[PHP] RegEx

RegEx [PHP] - PHP - Programmation

Marsh Posté le 26-02-2012 à 11:51:37    

Bonjour,
je ne suis pas du tout familier avec les regex.
J'aimerais obtenir tous les liens (xxx) d'une page (lien sous la forme par exemple de <a hreh="xxx" target="_blank">texte</a> )
 
J'ai trouvé des exemple mais cela ne me convient pas. Par exemple ceci:
 

Code :
  1. preg_match_all ('/<a\s+(?:[^"\'>]+|"[^"]*"|\'[^\']*\')*href=("[^"]+"|\'[^\']+\'|[^<>\s]+)/i', $string, $matches);


 
me retourne les liens xxx entre guillemets "" du type "/repertoire/fichier.extension" au lieu de /repertoire/fichier.extension
 
J'aimerais savoir par quoi je dois remplacer pour ne plus les avoir.
 
Merci de votre aide.

Reply

Marsh Posté le 26-02-2012 à 11:51:37   

Reply

Marsh Posté le 26-02-2012 à 16:10:22    

("[^"]+"
Il capture les guillemets effectivement. Voici un truc plus simple qui devrait fonctionner néanmoins :

Code :
  1. preg_match_all ('/<a\s+(?:[^"\'>]+|"[^"]*"|\'[^\']*\')*href=\"(.+)\"/i', $string, $matches);


Si quelqu'un a le courage de développer... En fait .+ va capturer n'importe quel caractère, il ne vérifiera pas que l'URL est bien valide.

Reply

Marsh Posté le 27-02-2012 à 17:07:28    

Et tout simplement :
 

Code :
  1. preg_match_all('`<a href="([^"]+)" ?[^>]+>`i', $string, $matches);


?

Reply

Sujets relatifs:

Leave a Replay

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