|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Membre régulier
![]() Étudiant Inscription : juin 2011 Messages : 55 ![]() |
Bonjour à tous et à toutes.
je cherche a extraire tous les hyperliens d'une page web. Je me sers donc de cette petite regexp sympathique Code :
(<a[^<>]*?href=["\'](.+?)["\'].*?>(.*?)</a>)|(<form[^<>]*?action=["\'](.+?)["\'].*?>)|(<area[^<>]*?href=["\'](.+?)["\'].*?>) Donc après plusieurs test voici les résultats que je ne comprend pas très bien... Jusqu'à 7 liens ca marche Code :
Code :
|
||||
|
|
00
|
|
|
#2 |
![]() ![]() Inscription : septembre 2010 Messages : 7 103 ![]() |
utilise DOMDocument pour parser du HTML
__________________
http://blog.stealth35.com/ |
|
|
10
|
|
|
#3 |
|
Membre régulier
![]() Étudiant Inscription : juin 2011 Messages : 55 ![]() |
Certes ^^ mais ca n'explique pas le problème un peu étrange... mais merci du conseil
|
|
|
00
|
|
|
#4 |
![]() ![]() Inscription : septembre 2010 Messages : 7 103 ![]() |
pourquoi étrange y'a rien qui me choque le [^<>] c'est tout les caractères sauf < et > donc forcement le era est dedans, utilise les bons outils et tu n'auras pas ce probleme ...
__________________
http://blog.stealth35.com/ |
|
|
00
|
|
|
#5 |
|
Membre régulier
![]() Étudiant Inscription : juin 2011 Messages : 55 ![]() |
oui <area ... href=""> est bien reconnu par '#<a[^<>]*?href="(.+?)"#' mais pas par '#<a[^<>]*?href="(.+?)"[^<>]*?>.*?</a>#'
deuxièmement même au cas ou ca aurait été ca, il aurait du me retourner ma balise, même s'il me la considérait comme un lien et pas un area. or ici, le retour est vide... Ce que je ne pige pas c'est juste que ca fonctionne pour une chaine ou il y a 7 patterns à la syntaxe totalement identique mais plus pour 8 (dans ce cas la) |
|
|
00
|
|
|
#6 | |
![]() ![]() Inscription : septembre 2010 Messages : 7 103 ![]() |
Citation:
__________________
http://blog.stealth35.com/ |
|
|
|
00
|
|
|
#7 | |||||
|
Membre régulier
![]() Étudiant Inscription : juin 2011 Messages : 55 ![]() |
J'ai posté mes tests, il n'y a pas de </a> J'ai fini par réussir à faire ce que je voulais mais je comprend toujours pas pourquoi cette erreur à lieu (simple curiosité ^^) et effectivement, j'ai changé mon pattern en '#<a[^r>][^<>]*? (...)#' merci pour ca ^^
Je précise que je fais un simple preg_match et non un preg_match_all dans le cas du test Citation:
|
|||||
|
|
00
|
|
|
#8 |
![]() ![]() Inscription : septembre 2010 Messages : 7 103 ![]() |
je vois pas pourquoi tu t’embêtes ...
__________________
http://blog.stealth35.com/ |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com