PHP - identification d'url
5 messages
• Page 1 sur 1
- Gill's
- Nouveau WRInaute

- Messages: 9
- Inscription: 3 Jan 2006
PHP - identification d'url
Le code dans lequel je cherche mon expression est du type :
<h2 class=classe1><a href="http://www.site.com/gabarit.php?cat=cat1&f=3">ma page</a></h2><h2 class=classe1><a href="http://www.site.com/gabarit.php?cat=cat1&f=2">ma page 2</a></h2> etc...
Comme vous le voyez, le code n'est pas formaté ligne par ligne, tout se suit.
Je voudrais pouvoir identifier chaque url :
<a href="http://www.site.com/gabarit.php?cat=cat1&f=3">ma page</a>
Comment je fais pour que mon identification s'arete a chaque balise </a> pour pouvoir ensuite afficher toutes les chaines trouvées ?
j'ai fais ca mais ca ne marche pas :
preg_match_all('/\<a href="(.*)(www.site.com)+(.*?)(<\/a>)+/Ui',$file_contents,$out);
la chaine semble ne pas s'areter a chaque </a> trouvé, mais plutot au tout dernier </a> trouvé dans l'ensemble du code.
comment faire ?
Merci !
<h2 class=classe1><a href="http://www.site.com/gabarit.php?cat=cat1&f=3">ma page</a></h2><h2 class=classe1><a href="http://www.site.com/gabarit.php?cat=cat1&f=2">ma page 2</a></h2> etc...
Comme vous le voyez, le code n'est pas formaté ligne par ligne, tout se suit.
Je voudrais pouvoir identifier chaque url :
<a href="http://www.site.com/gabarit.php?cat=cat1&f=3">ma page</a>
Comment je fais pour que mon identification s'arete a chaque balise </a> pour pouvoir ensuite afficher toutes les chaines trouvées ?
j'ai fais ca mais ca ne marche pas :
preg_match_all('/\<a href="(.*)(www.site.com)+(.*?)(<\/a>)+/Ui',$file_contents,$out);
la chaine semble ne pas s'areter a chaque </a> trouvé, mais plutot au tout dernier </a> trouvé dans l'ensemble du code.
comment faire ?
Merci !
- Gill's
- Nouveau WRInaute

- Messages: 9
- Inscription: 3 Jan 2006
j'ai testé, mais ca ne fonctionne toujours pas :
preg_match_all('/\<a href="(.*?)(www.site.com)+(.*?)(<\/a>)+/Ui',$file_contents,$out);
L'identification va toujours jusqu'au dernier </a> trouvé dans tout le code, pas le premier rencontré après "www.site.com".
Hors je voudrais pouvoir identifier chaque lien, 1 par 1.
A+
preg_match_all('/\<a href="(.*?)(www.site.com)+(.*?)(<\/a>)+/Ui',$file_contents,$out);
L'identification va toujours jusqu'au dernier </a> trouvé dans tout le code, pas le premier rencontré après "www.site.com".
Hors je voudrais pouvoir identifier chaque lien, 1 par 1.
A+
-

sunflower - WRInaute discret

- Messages: 121
- Inscription: 5 Jan 2006
Gill's a écrit:preg_match_all('/\<a href="(.*?)(www.site.com)+(.*?)(<\/a>)+/Ui',$file_contents,$out);
L'identification va toujours jusqu'au dernier </a> trouvé dans tout le code, pas le premier rencontré après "www.site.com".
Hors je voudrais pouvoir identifier chaque lien, 1 par 1.
Plutôt une regexp comme ça?
'(<a href="(https?)://www.site.com([^"]*)[^<]*</a>)'
matche pas les sous-domaines de :www.site.com ni les liens relatifs (et que le protocole http|https)
Les backreferences devraient te donner le mode http|https, la query string, et la balise entière de <a> à </a>
Bon courage avec les regexp
5 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
- Identification et Commentaires en php
- Identification et iframe
- Identification d'un referer : Bluecoat
- Identification sur la home
- Identification visiteur par adresse IP
- Identification d'une signature de navigateur
- Identification de la langue du bot
- Cookies pour identification automatque
- Lerepertoire uniquement sur identification
- Identification des pages modifiées
- Les bonnes pratiques pour son site web : le memento - 22-02-2007
- Les bonnes pratiques d'Opquast pour le référencement - 25-02-2008
- Résultats Google Maps pour des recherches non locales - 22-04-2009
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités



