Vous êtes ici Fonction PHP > Description de la fonction parse_url()

 

Recherche sur les Noms des fonctions php/mysql

 
 

parse_url()

Définition

Analyse une URL et retourne ses composants - (PHP 4, PHP 5)

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

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 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 URL 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($urlPHP_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 URL 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.



 
 

Bouts de code utilisant la fonction parse_url()



<?php /* ... */ function absolute_url($base_url$relative_url){    $base_url_info parse_url($base_url);    $base_url_path explode("/"$base_url_info["path"]);   /* ... */ ?>

<?php /* ... */   private function prepare_url($url) {     $parts parse_url($url);     $port = @$parts['port']; /* ... */ ?>

<?php /* ... */              */              $parts parse_url($url);              /** /* ... */ ?>

<?php /* ... */   $url 'http://www.phpsources.net';             $url_parsee parse_url($url);             $host $url_parsee["host"]; /* ... */ ?>

<?php $uri parse_url($valuePHP_URL_HOST); if (preg_match('#www.#U'$uri)) { /* ... */ ?>