Que ce soit pour générer des statistiques, rediriger des requêtes, gérer des langues, … vous pouvez avoir besoin d’analyser la structure de l’URL qui appelle votre script.
Il est fréquent de voir dans le code de certains développeurs des fonctions complexes avec des tas d’explode, d’expressions régulières, etc.
Il existe pourtant une fonction PHP faite exactement pour ça : parse_url().
Son usage est extrêmement simple :
-
parse_url(string $url, [int $component]);
Le premier paramêtre, $url, est obligatoire. Il s’agit tout simplement de l’adresse à analyser.
Le second, $component, est lui facultatif. Il permet de récupérer uniquement un élément de l’URL si les autres ne vous intéressent pas.
Dans le cas où vous n’utilisez que le premier paramêtre, la fonction vous retournera un tableau. Par contre, si vous utilisez le deuxième paramêtre, vous aurez dans ce cas une chaîne en retour.
Les exemples
Imaginons que vous souhaiter analyser l’adresse suivante :
-
-
parse_url("http://www.mon_adresse_web_a_tester.com/mon_repertoire/mon_script.php?param1=ok");
Un parse_url sur cette adresse vous retournera le tableau suivant :
-
Array
-
(
-
[scheme] => http
-
[host] => www.mon_adresse_web_a_tester.com
-
[path] => /mon_repertoire/mon_script.php
-
[query] => param1=ok
-
)
Si l’on souhaite récupérer uniquement le chemin, on utilisera la constante PHP_URL_PATH.
L’appel de la fonction sera donc :
-
-
parse_url("http://www.mon_adresse_web_a_tester.com/mon_repertoire/mon_script.php?param1=ok", PHP_URL_PATH);
et dans ce cas, le résultat sera une simple chaîne :
-
-
/mon_repertoire/mon_script.php
Les éléments récupérables
Voici un exemple qui va solliciter tous les éléments que parse_url est capable de retourner :
-
-
parse_url("http://mon_login:mon_mot_de_passe@www.mon_adresse_web_a_tester.com:80/mon_repertoire/mon_script.php?param1=ok#ici");
Nous aurons cette fois le tableau suivant :
-
Array
-
(
-
[scheme] => http
-
[host] => www.mon_adresse_web_a_tester.com
-
[port] => 80
-
[user] => mon_login
-
[pass] => mon_mot_de_passe
-
[path] => /mon_repertoire/mon_script.php
-
[query] => param1=ok
-
[fragment] => ici
-
)
Ces 8 éléments peuvent être retournés individuellement en utilisant en deuxième paramêtre l’une de ces constantes :
-
PHP_URL_SCHEME
-
PHP_URL_HOST
-
PHP_URL_PORT
-
PHP_URL_USER
-
PHP_URL_PASS
-
PHP_URL_PATH
-
PHP_URL_QUERY
-
PHP_URL_FRAGMENT
Voilà :)
Inscrivez-vous au RSS des commentaires ou laissez un trackback
Extraire les éléments d’une URL



















Donnez votre avis
Veuillez laisser votre commentaire ci-dessous