Maison >développement back-end >tutoriel php >Comment puis-je extraire efficacement un chemin d'URL sans la chaîne de requête en PHP ?

Comment puis-je extraire efficacement un chemin d'URL sans la chaîne de requête en PHP ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-01 21:33:10325parcourir

How Can I Efficiently Extract a URL Path Without the Query String in PHP?

Extraire des chemins d'URL sans chaînes de requête

Dans le développement Web, il est souvent nécessaire de travailler avec des URL et de manipuler leurs composants. Un scénario courant est la nécessité de récupérer le chemin de l'URL sans la chaîne de requête, également connue sous le nom de liste de paramètres d'URL.

Problème :

Lors du traitement des URL sous la forme de "www.example.com/myurl.html?unwantedthngs", vous souhaiterez peut-être supprimer le point d'interrogation (?) et tout ce qui le suit pour obtenir un chemin d'URL propre, tel que "www.example.com/myurl.html."

Solution :

Pour accomplir cette tâche, vous pouvez utiliser diverses techniques, telles que l'utilisation de strtok() de PHP. fonction. strtok() est une fonction puissante qui vous permet de tokeniser une chaîne en fonction d'un délimiteur spécifié.

Exemple :

$url = strtok($_SERVER["REQUEST_URI"], '?');

Dans cet exemple, nous utilisons strtok () pour diviser $_SERVER["REQUEST_URI"] en deux sous-chaînes : la première sous-chaîne contient le chemin de l'URL jusqu'à la première occurrence du point d'interrogation, et la deuxième sous-chaîne (que nous supprimons) contient la chaîne de requête.

Techniques alternatives :

Bien que strtok() soit une méthode concise et efficace pour extraire le chemin de l'URL, il existe d'autres techniques que vous pouvez également explorer :

  • explode() : Vous pouvez utiliser éclater() pour diviser l'URL en un tableau basé sur le délimiteur de point d'interrogation. Cependant, il n'est pas toujours nécessaire d'exploser l'intégralité de l'URL, surtout si vous n'avez besoin que du chemin de l'URL.
  • strstr() avec true : En définissant le troisième paramètre de strstr() sur true , vous pouvez obtenir le chemin de l'URL jusqu'à la première occurrence du point d'interrogation. Cependant, cette méthode n'est pas aussi fiable que strtok() ou explosive().
  • substr() et strrpos() : Vous pouvez utiliser substr() pour extraire la sous-chaîne depuis le début de l'URL jusqu'à la dernière position du point d'interrogation, déterminée à l'aide de strrpos(). Cependant, cette méthode n'est pas entièrement fiable, notamment lors de la gestion d'URL sans chaîne de requête.

Conclusion :

strtok() est une technique robuste et fiable pour extraire le chemin de l'URL sans la chaîne de requête. Il offre un moyen concis et efficace d'accomplir cette tâche dans votre code PHP.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn