REGEX pour interprété une url complexe

Résolu
cs_maxwells Messages postés 31 Date d'inscription lundi 14 mars 2005 Statut Membre Dernière intervention 9 novembre 2008 - 21 août 2007 à 18:48
cs_maxwells Messages postés 31 Date d'inscription lundi 14 mars 2005 Statut Membre Dernière intervention 9 novembre 2008 - 21 août 2007 à 23:00
Salut à tous,
Je connais l'étendu des possibilité des expressions régulières mais je suis incapable d'en écrire une.
Je voudrais savoir comment faire pour récupérer les diverses informations dans une URL par exemple http://www.google.fr/search?q=regex+pour+interpr%C3%A9ter+une+url+complexe&sourceid=navclient-ff&ie=UTF-8&rlz=1B3GGGL_frFR213FR213

ici le protocole est  : http
le serveur est : www.google.com
et les variable get sont : q = regex+pour+interpr%C3%A9ter+une+url+complexe
                                    sourceid=navclient-ff
                                    ie=UTF8
                                    ... etc...

je sais pas si les regex sont la meilleures méthodes pour récupérer ces infos, mais bon, si quelqu'un sait le faire et à du temps à me consacrer, je voudrais un fonction dans laquelle on passe en argument l'url et cette fonction renvoie un array de cette forme :

Array {
[1] -> "http"
[2] -> "www.google.com"
[3] -> Array {
["q"] -> "regex+pour+interpr%C3%A9ter+une+url+complexe"
["sourceid"] -> "navclien-ff"
...
}
}

avec dans [3] autant de variable que d'arguments si c'est possible...

Je vous remercie d'avance de votre aide...
Si je ne suis pas assez clair relancer moi, je répondrais à toutes vos questions...

2 réponses

JoJo738 Messages postés 1267 Date d'inscription mercredi 7 juillet 2004 Statut Membre Dernière intervention 29 juin 2010 2
21 août 2007 à 20:20
Salut ^^

Pour ce genre d'opération, il existe une fontion php parse_url() , celle ci retournera un tableau (array) suivant :

Array
(
[scheme] => http
[host] => hostname
[user] => username
[pass] => password
[path] => /path
[query] => arg=value
[fragment] => anchor
)

ensuite, pour les arguments, utise parse_str()

En exemple ca donne :

<?php

$url = 'http://www.phpcs.com/infomsg_REGEX-POUR-INTERPRETE-URL-COMPLEXE_1000376.aspx';

$parse_url = parse_url($url);

if( isset($parse_url['query']) )  {
 parse_str($parse_url['query'], $parse_url['args']);
}  else
 $parse_url['args'] = array();

print_r($parse_url);

?>

Et ca te retourne :
Array
(
[scheme] => http
[host] => hostname
[user] => username
[pass] => password
[path] => /path
[query] => arg=value
[query] => array(
[arg1] => blablalba
[arg2] => blablalba2
)
[fragment] => anchor
)

<hr />Si ma reponse te convient, merci de l'accepter ! 
3
cs_maxwells Messages postés 31 Date d'inscription lundi 14 mars 2005 Statut Membre Dernière intervention 9 novembre 2008
21 août 2007 à 23:00
Ouuuuuuuuuu t'es un génie merci merci merci !!!
0
Rejoignez-nous