Manuel PHP
Précédent |  | Suivant

# parse_url

(PHP 3, PHP 4, PHP 5)

parse_url -- Analyse une URL et retourne ses composants

## Description

mixed parse_url ( string url [, int component] )

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 URLs 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

component

  Peut être une des constantes parmis `PHP_URL_SCHEME`, `PHP_URL_HOST`, `PHP_URL_PORT`, `PHP_URL_USER`, `PHP_URL_PASS`, `PHP_URL_PATH`, `PHP_URL_QUERY` ou `PHP_URL_FRAGMENT` pour récupérer uniquement une partie de l'URL en tant que chaîne de caractères.

## Valeurs de retour

Pour les URLs vraiment mal formées, parse_url() peut retourner `FALSE` et émettre un `E_WARNING`. Sinon, un tableau associatif est retourné, dont les éléments peuvent être (au moins un) :

- `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é, une chaîne de caractères est retournée au lieu d'un tableau.

## Historique

Version | Description
--- | ---
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); ?>`

L'exemple ci-dessus va afficher :

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

## Notes

> Note : Cette fonction ne fonctionne pas avec les URLs relatives.

> Note : parse_url() a été créée tout spécialement pour analyser les URLs et non les URIs. 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()
parse_str()
http_build_query()
dirname()
basename()

Précédent | Sommaire | Suivant
http_build_query | Niveau supérieur | rawurldecode