Bonjour,

Je voudrais extraire toutes les adresses internet et les adresses email se trouvant sur une page web.

Ce qui complique la chose, c'est que ça peut être n'importe quelle page web.

En plus je ne veux récupérer parfois qu'une partie des adresses :
- pour les URLs : www.domain.ext - domain.ext - sub.domain.ext

Et je veux récupérer à part ce qui reste de l'adresse complète du style :
/?var=var1...

- pour les email : c'est plus simple address@domain.ext

Sur mes pages ça fonctionne très bien, mais si je visite une page comme http://www.amazon.co.uk/ ou http://www.yahoo.co.uk/ ça devient vite très lourd à supprimer du code...

J'ai quasiment tout essayé, mais il reste toujorus des parcelles de codes (image ou balises oubliées par le développeur etc...) parfois c'est même http qui ne veut plus s'enlever !!!

Je mets des .co.uk en exemple, je n'ai jamais vu pire en codage même html.

J'ai aussi une bizarerie, si je trouve une adresse https, ça n'affiche pas le lien (j'ai fait trouvé ça avec preg_match)

Désolé je ne vous mets pas le code, je l'ai changé des dizaine de fois et du coup je ne sais même plus quelle version fonctionnait à peu près bien :-)

Mais le dernier truc que j'ai essayé qui fonctionne à peu près correctement pour les adresses (mais avec mes problèmes du dessus) c'est :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
preg_match_all("/(<([\w]+)[^>]*>)(.*)(<\/\\2>)/", $url, $matches, PREG_SET_ORDER);
 
foreach ($matches as $val)
{
   echo "val 0 : ".$val[0]."<br />\n";
   //echo "val 1 : ".$val[1]."<br />\n";
   //echo "val 2 : ".$val[2]."<br />\n";
   //echo "val 3 : ".$val[3]."<br />\n";
   //echo "val 4 : ".$val[4]."<br />\n";
   echo "<br />";
}
Voilà donc si vous avez une idée, je suis preneur :-)

Merci à tous @ bientôt...