Dans le développement Web, nous avons souvent besoin d'utiliser PHP pour traiter les URL. Parfois, nous devons supprimer le nom de domaine dans l’URL et conserver uniquement le chemin suivant. Cet article explique comment utiliser PHP pour supprimer les noms de domaine des chemins.
Méthode 1 : Utiliser la fonction parse_url
PHP fournit une fonction parse_url très utile pour analyser les URL. Nous pouvons utiliser cette fonction pour obtenir diverses parties de l'URL, notamment le protocole, le nom d'hôte, le chemin, la chaîne de requête et les fragments, etc.
Nous pouvons d'abord obtenir chaque partie de l'URL via la fonction parse_url, puis conserver uniquement la partie chemin. Le code est le suivant :
$url = 'http://www.example.com/path/to/file.html'; $path = parse_url($url, PHP_URL_PATH); echo $path; // 输出:/path/to/file.html
Le code ci-dessus définit d'abord une chaîne d'URL, puis utilise la fonction parse_url pour obtenir la partie chemin, et enfin génère le chemin.
Cette méthode peut effectivement supprimer le nom de domaine du chemin, mais elle ne peut supprimer que le nom d'hôte, pas le numéro de port. S'il y a un numéro de port dans l'URL, il sera conservé.
Méthode 2 : utiliser la fonction str_replace
En plus d'utiliser la fonction parse_url, nous pouvons également utiliser la fonction de remplacement de chaîne intégrée de PHP str_replace. Cette fonction recherche et remplace les parties spécifiées d'une chaîne.
Nous pouvons définir une chaîne URL contenant le nom d'hôte, puis utiliser la fonction str_replace pour remplacer le nom d'hôte par une chaîne vide, et enfin conserver uniquement la partie chemin. Le code est le suivant :
$url = 'http://www.example.com/path/to/file.html'; $path = str_replace('http://www.example.com', '', $url); echo $path; // 输出:/path/to/file.html
Le code ci-dessus définit d'abord une chaîne d'URL, puis utilise la fonction str_replace pour remplacer le nom d'hôte par une chaîne vide, supprimant ainsi le nom d'hôte. Enfin, il nous suffit de générer la partie chemin.
Cette méthode peut effectivement supprimer le nom de domaine et le numéro de port du chemin, mais elle ne s'applique qu'aux noms d'hôte connus. Si nous traitons certaines URL générées dynamiquement, nous ne pourrons peut-être pas connaître le nom d'hôte.
Méthode 3 : Utiliser des expressions régulières
En plus des deux méthodes ci-dessus, nous pouvons également utiliser des expressions régulières pour supprimer le nom de domaine dans le chemin. Les expressions régulières sont un puissant outil de correspondance de texte qui peut être utilisé pour rechercher et remplacer certaines parties d'une chaîne.
Nous pouvons supprimer le nom d'hôte en définissant une chaîne d'URL contenant le nom d'hôte, puis en utilisant des expressions régulières pour remplacer le nom d'hôte par une chaîne vide. Le code est le suivant :
$url = 'http://www.example.com/path/to/file.html'; $path = preg_replace('/^https?:\/\/[^\/]+/', '', $url); echo $path; // 输出:/path/to/file.html
Le code ci-dessus définit d'abord une chaîne d'URL, puis utilise la fonction preg_replace pour faire correspondre et remplacer. L'expression régulière /^https?://[^/]+/
correspond à quelque chose commençant par http:// ou https:// suivi d'un ou plusieurs caractères qui ne contiennent pas de barre oblique. Le but de cette expression régulière est de faire correspondre la partie du nom d'hôte. Utilisez une chaîne vide pour remplacer le contenu correspondant et obtenez enfin la partie du chemin moins le nom d'hôte.
Remarque : soyez très prudent lorsque vous utilisez des expressions régulières et assurez-vous de garantir l'exactitude de l'expression régulière, sinon des erreurs imprévisibles pourraient se produire.
Résumé
Cet article présente trois méthodes pour supprimer les noms de domaine des chemins en PHP : en utilisant la fonction parse_url, en utilisant la fonction str_replace et en utilisant des expressions régulières. Chaque méthode a ses scénarios et restrictions applicables. La méthode à utiliser doit être choisie de manière flexible en fonction de la situation réelle. J'espère que cet article sera utile aux lecteurs.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!