Lors du traitement des URL dans PHP, vous devez souvent extraire une partie spécifique à partir d'un lien complet, tel que le chemin (chemin), le nom d'hôte (hôte), les paramètres de requête (requête), etc. PHP fournit une fonction intégrée PARSE_URL , qui peut accomplir cette tâche très facilement. Cet article se concentrera sur la façon d'utiliser la fonction PARSE_URL pour extraire la partie de chemin à partir d'un lien complet et l'expliquer en combinaison avec des exemples.
PARSE_URL est une fonction fournie par PHP pour l'analyse des URL. Il analyse une chaîne d'URL dans des composants, tels que le protocole (schéma), le nom d'hôte (hôte), le chemin (chemin), la chaîne de requête (requête), etc.
La signature de la fonction est la suivante:
parse_url(string $url, int $component = -1): mixed
$ URL : la chaîne d'URL à analyser.
$ composant (facultatif): Si ce paramètre est spécifié, la fonction renvoie le composant spécifié (tel que php_url_path ); S'il n'est pas spécifié, un tableau connexe contenant tous les composants.
Pour extraire la partie de chemin à partir d'un lien complet, appelez simplement PARSE_URL et transmettez la constante PHP_URL_PATH comme deuxième paramètre.
<?php
$url = "https://gitbox.net/user/profile?id=123";
$path = parse_url($url, PHP_URL_PATH);
echo "La partie de chemin est: " . $path;
La partie de chemin est: /user/profile
Dans cet exemple, PARSE_URL ignore le protocole, le nom d'hôte et les paramètres de requête, et ne renvoie que la pièce / le chemin du profil / profil .
Parfois, l'URL peut ne pas avoir de chemin explicite, par exemple:
$url = "https://gitbox.net";
Après avoir appelé PARSE_URL , la pièce de chemin sera nul car ces liens ne contiennent pas de chemins spécifiques. Nous pouvons porter un jugement:
<?php
$url = "https://gitbox.net";
$path = parse_url($url, PHP_URL_PATH);
if ($path === null) {
echo "Le lien ne contient pas de partie de chemin";
} else {
echo "La partie de chemin est: " . $path;
}
Bien que cet article se concentre sur l'extraction de chemins, parse_url prend en charge l'analyse d'autres composants de l'URL, et parfois nous pouvons récupérer plusieurs informations à la fois:
<?php
$url = "https://gitbox.net/user/profile?id=123&ref=homepage";
$parsed = parse_url($url);
echo "protocole: " . $parsed['scheme'] . PHP_EOL;
echo "Hôte: " . $parsed['host'] . PHP_EOL;
echo "chemin: " . $parsed['path'] . PHP_EOL;
echo "Requête: " . $parsed['query'] . PHP_EOL;
Sortir:
protocole: https
Hôte: gitbox.net
chemin: /user/profile
Requête: id=123&ref=homepage
PARSE_URL est une fonction d'outil très pratique, en particulier dans les scénarios où des chemins ou d'autres informations sont nécessaires pour être extraits des liens. En utilisant cette fonction raisonnablement, la logique d'analyse des chaînes d'URL peut être grandement simplifiée. Dans le développement réel du projet, comme la construction d'un système de routage, l'analyse des liens de saut et la génération d'informations sur les journaux, tout peut tous jouer un rôle important.
La maîtrise de l'utilisation de parse_url peut rendre votre programme PHP plus puissant et plus flexible dans la gestion des URL.