parse_url
(PHP 4, PHP 5)
parse_url — Analyse une URL et retourne ses composants
Description
Cette fonction analyse une URL et retourne un tableau associatif contenant tous les éléments qui y sont présents.
Cette fonction n'est pas faite pour valider l'URL fournie, elle ne fait que la découper en parties listées ci-dessous. Les URL partielles sont également acceptées, la fonction parse_url() fera de son mieux pour les analyser correctement.
Liste de paramètres
-
url
-
L'URL à analyser. Les caractères invalides sont remplacés par des caractères soulignés _.
-
component
-
Peut être une des constantes parmi
PHP_URL_SCHEME
,PHP_URL_HOST
,PHP_URL_PORT
,PHP_URL_USER
,PHP_URL_PASS
,PHP_URL_PATH
,PHP_URL_QUERY
ouPHP_URL_FRAGMENT
pour récupérer uniquement une partie de l'URL en tant que chaîne de caractères (sauf lorsquePHP_URL_PORT
est fourni ; dans ce cas, la valeur retournée sera un entier).
Valeurs de retour
Pour les URL vraiment mal formées, parse_url() peut retourner
FALSE
.
Si le paramètre component
est omis, un array
associatif est retourné. Au moins un élément sera présent dans le tableau. Voici
les clés potentielles de ce tableau:
- scheme - e.g. http
- host
- port
- user
- pass
- path
- query - après le marqueur de question ?
- fragment - après la hachure #
Si le paramètre component
est spécifié, parse_url()
retourne une string (ou un entier dans le cas d'utilisation de la
constante PHP_URL_PORT
)au lieu d'un array. Si le composent
demandé n'existe pas dans l'URL, NULL
sera retourné.
Historique
Version | Description |
---|---|
5.4.7 | Correction de la reconnaissance de l'hôte lorsque le schéma est omis et que un séparateur est présent en début de chaîne. |
5.3.3 |
Suppression du E_WARNING émis lorsque l'URL
était invalide.
|
5.1.2 | Ajout du paramètre component |
Exemples
Exemple #1 Exemple avec parse_url()
<?php $url = 'http://username:password@hostname/path?arg=value#anchor'; print_r(parse_url($url)); echo parse_url($url, PHP_URL_PATH); ?>
<?php $url = '//www.example.com/path?googleguy=googley'; // Avant PHP 5.4.7, le chemin sera "//www.example.com/path" var_dump(parse_url($url)); ?>
L'exemple ci-dessus va afficher :
array(3) { ["host"]=> string(15) "www.example.com" ["path"]=> string(5) "/path" ["query"]=> string(17) "googleguy=googley" }
Notes
Note:
Cette fonction ne fonctionne pas avec les URLs relatives.
Note:
parse_url() a été créée tout spécialement pour analyser les URL et non les URI. Cependant, pour des raisons de compatibilité adjacente, PHP fait une exception pour le schéma file:// où les triples slashs (file:///...) sont autorisés. Tous les autres schémas sont invalides.
Voir aussi
- pathinfo() - Retourne des informations sur un chemin système
- parse_str() - Analyse une requête HTTP
- http_build_query() - Génère une chaîne de requête en encodage URL
- http_build_url() - Construit une URL
- dirname() - Renvoie le nom du dossier parent
- basename() - Retourne le nom du fichier dans un chemin
- » RFC 3986