Rechercher une fonction PHP

parse_url

(PHP 4, PHP 5, PHP 7)

parse_urlAnalyse une URL et retourne ses composants

Description

mixed parse_url ( string $url [, int $component = -1 ] )

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 ou PHP_URL_FRAGMENT pour récupérer uniquement une partie de l'URL en tant que chaîne de caractères (sauf lorsque PHP_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 point d'interrogation "?"
  • fragment - après le croisillon (dièse) "#"

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 composant 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:9090/path?arg=value#anchor';

var_dump(parse_url($url));
var_dump(parse_url($urlPHP_URL_SCHEME));
var_dump(parse_url($urlPHP_URL_USER));
var_dump(parse_url($urlPHP_URL_PASS));
var_dump(parse_url($urlPHP_URL_HOST));
var_dump(parse_url($urlPHP_URL_PORT));
var_dump(parse_url($urlPHP_URL_PATH));
var_dump(parse_url($urlPHP_URL_QUERY));
var_dump(parse_url($urlPHP_URL_FRAGMENT));
?>

L'exemple ci-dessus va afficher :

array(8) {
  ["scheme"]=>
  string(4) "http"
  ["host"]=>
  string(8) "hostname"
  ["port"]=>
  int(9090)
  ["user"]=>
  string(8) "username"
  ["pass"]=>
  string(8) "password"
  ["path"]=>
  string(5) "/path"
  ["query"]=>
  string(9) "arg=value"
  ["fragment"]=>
  string(6) "anchor"
}
string(4) "http"
string(8) "username"
string(8) "password"
string(8) "hostname"
int(9090)
string(5) "/path"
string(9) "arg=value"
string(6) "anchor"

Exemple #2 Exemple avec la fonction parse_url() sans schéma

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

Rechercher une fonction PHP

Document créé le 30/01/2003, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/php-rf-function.parse-url.html

L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.

Références

  1. Consulter le document html Langue du document :fr Manuel PHP : http://php.net

Ces références et liens indiquent des documents consultés lors de la rédaction de cette page, ou qui peuvent apporter un complément d'information, mais les auteurs de ces sources ne peuvent être tenus responsables du contenu de cette page.
L'auteur de ce site est seul responsable de la manière dont sont présentés ici les différents concepts, et des libertés qui sont prises avec les ouvrages de référence. N'oubliez pas que vous devez croiser les informations de sources multiples afin de diminuer les risques d'erreurs.

Table des matières Haut