Position actuelle: Accueil> Derniers articles> analyser le sens de chaque champ de retour dans parse_url

analyser le sens de chaque champ de retour dans parse_url

gitbox 2025-05-26

Dans le développement de PHP, nous devons souvent traiter les URL, tels que l'extraction des noms de domaine, des chemins, des paramètres de requête et d'autres informations à partir d'une adresse complète. parse_url () est une fonction très pratique fournie par PHP, qui peut nous aider à effectuer ces opérations rapidement et avec précision. Cependant, de nombreux développeurs ne comprennent pas la signification de chaque champ renvoyé par la fonction, ce qui conduit à des malentendus ou à des erreurs dans une utilisation réelle. Cet article analyse systématiquement le résultat de retour de parse_url () pour vous aider à vraiment maîtriser son utilisation.

1. Utilisation de base de la fonction parse_url ()

La définition de la fonction de parse_url () est la suivante:

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

Il reçoit une chaîne d'URL en entrée et renvoie un tableau associatif contenant les différents composants de l'URL. Le deuxième paramètre $ composant est facultatif. Si ce paramètre est spécifié, la fonction ne renvoie que la valeur de la partie correspondante de l'URL.

Regardons d'abord l'exemple le plus simple:

 $url = 'https://user:[email protected]:8080/path/to/page.php?query=123#section';
$parsed = parse_url($url);
print_r($parsed);

Le résultat de sortie est le suivant:

 Array
(
    [scheme] => https
    [host] => gitbox.net
    [port] => 8080
    [user] => user
    [pass] => pass
    [path] => /path/to/page.php
    [query] => query=123
    [fragment] => section
)

2. Explication détaillée de la signification de chaque champ

A analyser le sens de chaque champ dans ce tableau un par un:

1. Schéma

Il s'agit de la partie protocole de l'URL, comme HTTP , HTTPS , FTP , etc. Dans les exemples sont:

 [scheme] => https

Indique que l'URL utilise le protocole HTTPS.

2. Hôte

Autrement dit, le nom d'hôte, généralement le nom de domaine ou l'adresse IP. Dans notre exemple:

 [host] => gitbox.net

Il s'agit exactement de l'adresse du serveur auxquelles nous voulons accéder.

3. Port

Il s'agit du numéro de port de la connexion. Si le port n'est pas explicitement spécifié dans l'URL, le champ n'apparaîtra pas dans le résultat. Par exemple, le port HTTP par défaut est 80 et HTTPS est 443; Il sera analysé à moins que vous n'utilisiez un port non défaut.

 [port] => 8080

Cela montre que nous avons accédé via le port 8080.

4. utilisateur et passez

Ces deux champs représentent le nom d'utilisateur et le mot de passe utilisé pour l'authentification de base. Ils apparaissent généralement dans des URL comme https: // utilisateur: pass @ hôte . Dans l'exemple:

 [user] => user
[pass] => pass

Veuillez noter: il n'est pas recommandé de transférer le nom d'utilisateur et le mot de passe dans le texte brut URL dans des environnements de production réels.

5. Path

Il s'agit de la partie de chemin de la ressource dans l'URL, comme le chemin d'accès à une page ou une interface du site Web:

 [path] => /path/to/page.php

Ce champ est souvent utilisé dans le routage, le contrôle d'autorisation ou l'accès aux ressources statiques.

6. Requête

Autrement dit, la partie de la chaîne de requête après le point d'interrogation, qui est généralement utilisée pour transmettre les paramètres:

 [query] => query=123

Notez que la chaîne d'origine qui n'est pas analysée ici est retournée. Si un traitement supplémentaire est nécessaire, vous pouvez utiliser la fonction parse_str () pour le convertir en un tableau:

 parse_str($parsed['query'], $queryParams);
print_r($queryParams);

Sortir:

 Array
(
    [query] => 123
)

7. Fragment

Il s'agit de la partie ancre de l'URL, c'est-à-dire le contenu après # , qui est généralement utilisé pour sauter dans la page:

 [fragment] => section

Il n'est pas envoyé au serveur par le navigateur et est principalement utilisé pour le contrôle de la page client.

3. Utilisez le deuxième paramètre pour extraire une partie de l'ordre

Si vous êtes uniquement intéressé par un certain champ dans l'URL, vous pouvez utiliser le deuxième paramètre pour spécifier la constante de champ, par exemple:

 $host = parse_url($url, PHP_URL_HOST);
echo $host; // Sortir:gitbox.net

Les constantes disponibles comprennent:

  • Php_url_scheme

  • Php_url_host

  • Php_url_port

  • Php_url_user

  • Php_url_pass

  • Php_url_path

  • Php_url_query

  • Php_url_fragment

4. Précautions et problèmes communs

  1. URL incomplète : parse_url () ne nécessite pas que l'URL entrante soit complète. Il peut également gérer des adresses relatives comme /path/to/page.php?query=123 , mais les champs correspondants peuvent être manquants.

  2. La valeur de retour est fausse : lorsque la chaîne passée ne peut pas être analysée dans une URL valide, la fonction renvoie fausse et que l'attention doit être accordée à la tolérance aux défauts.

  3. Nom de domaine Unicode : Pour les URL contenant des caractères chinois ou d'autres Unicode, il est recommandé d'utiliser idn_to_ascii () pour la conversion de codage d'abord.

Résumer

parse_url () est un outil indispensable en PHP pour le traitement des URL. Comprendre la signification de chaque champ qu'il renvoie peut vous aider à effectuer plus efficacement les tâches de développement liées à l'URL. Il peut jouer un rôle important, qu'il s'agisse d'écriture d'un système de routage, de traitement des liens de saut ou d'exécution de l'analyse des demandes d'API. N'oubliez pas: en correspondant raisonnablement à parse_url () et parse_str () , vous pouvez facilement "démonter" n'importe quelle URL.