[RegExp] Détecter toutes sortes de liens

  • Auteur de la discussion Auteur de la discussion RomsIW
  • Date de début Date de début
WRInaute passionné
Bonjour,

Je suis en train de faire une regexp qui est censé récupérer les liens contenus dans les attributs href.

voici à quoi il ressemble pour le moment :

Code:
$regex = '#href=(.*)>#Usi';

le souci c'est que là ça suppose qu'on a un lien du genre <a href=monlien> donc pas d'attribut après href=

alors j'aimerais prendre en compte les différentes possibilités de liens suivants :

<a href=monlien attribut2=chose>
<a href=monlien>
<a href="monlien">
<a href=monlien attribut2="chose">

Comment faire ?

Merci de votre aide.
 
WRInaute impliqué
j'imagine que ces cas là tu les veux aussi ?
<a attribut2=chose href=monlien>
<a attribut2="chose" href=monlien>

si c'est dans tout un documents html que tu veux récupérer les href, je te conseillerais d'utilser une class comme celle-ci pour parser le code :

http://php-html.sourceforge.net/

si c'est juste une chaine qui contient un 'a' alors tu peux t'en sortir avec un explode ' ', '\t', '\n' puisse de tester un par un les attributs...
 
WRInaute passionné
TOMHTML a dit:
Code:
$regex = '#href=(.*)( .*)?>#Usi';

Je ne promets rien du tout, je n'ai même pas testé

$regex = '#href=(.*)( .*)?>#Usi';

ça marche pour les liens de Google (qui sont pas très W3C entre nous soit dit..) :) !

merci ! :)
 
Discussions similaires
Haut