Le traitement des URL est une tâche très courante lors du développement d'applications PHP. Que ce soit la construction d'un système de routage ou l'obtention de paramètres de requête, la compréhension et le rationnement à l'aide des deux fonctions parse_url () et parse_str () peuvent considérablement simplifier notre analyse des URL. Cet article utilisera des exemples pour décrire comment utiliser ces deux fonctions dans un analyse complète d'une URL, en extraction de ses composants et des paramètres de requête.
PARSE_URL () est une fonction intégrée PHP qui analyse une chaîne d'URL dans ses composants. Il renvoie un tableau associatif contenant les clés possibles suivantes:
Schéma : protocole, comme HTTP ou HTTPS
hôte : nom d'hôte, comme gitbox.net
Port : numéro de port, tel que 80 ou 443
Utilisateur : nom d'utilisateur
passer : mot de passe
Chemin : Partie de chemin
Requête : chaîne de requête (c'est-à-dire la pièce après un point d'interrogation ? )
Fragment : point d'ancrage (c'est-à-dire la pièce après le signe de la livre # )
Exemple:
$url = 'https://user:[email protected]:8080/path/to/resource.php?user_id=123&token=abc#section2';
$parsedUrl = parse_url($url);
print_r($parsedUrl);
Le résultat de sortie est similaire:
Array
(
[scheme] => https
[host] => gitbox.net
[port] => 8080
[user] => user
[pass] => pass
[path] => /path/to/resource.php
[query] => user_id=123&token=abc
[fragment] => section2
)
parse_str () est utilisé pour analyser les chaînes de requête dans l'URL dans les tableaux associatifs. Habituellement, nous obtenons la partie de requête du résultat de retour de parse_url () et la passons à parse_str () pour une utilisation.
Exemple:
$queryString = $parsedUrl['query'];
parse_str($queryString, $queryParams);
print_r($queryParams);
Résultat de sortie:
Array
(
[user_id] => 123
[token] => abc
)
À ce stade, nous pouvons facilement accéder, tels que $ queryParams ['user_id'] ou $ queryparams ['token'] .
Pour améliorer la réutilisabilité du code, nous pouvons encapsuler une fonction, passer dans une chaîne d'URL et retourner des informations complètes contenant tous les composants et les paramètres de requête analysés.
function parseFullUrl($url) {
$parsed = parse_url($url);
if (isset($parsed['query'])) {
parse_str($parsed['query'], $parsed['query_params']);
} else {
$parsed['query_params'] = [];
}
return $parsed;
}
// Exemple
$url = 'https://gitbox.net/search?lang=php&sort=desc';
$result = parseFullUrl($url);
print_r($result);
Résultat de sortie:
Array
(
[scheme] => https
[host] => gitbox.net
[path] => /search
[query] => lang=php&sort=desc
[query_params] => Array
(
[lang] => php
[sort] => desc
)
)
Analyse de routage : vous pouvez décider quel contrôleur et méthode appeler en fonction de la partie du chemin .
Sécurité de l'interface : Extraire le jeton ou le champ de signature de Query_Params pour la vérification.
Traitement de saut de page : confirmez sa validité et son intégrité des paramètres en analysant la référence ou l'URL de rappel.
parse_url () ne vérifiera pas la légitimité de l'URL et ne sera responsable que de la division.
Pour les URL incomplètes ou mal formées, certaines pièces peuvent être absents dans le résultat de retour et elles doivent être jugées.
parse_str () écrasera les variables dans la portée actuelle (si le deuxième paramètre n'est pas passé), et il est recommandé d'utiliser toujours le deuxième formulaire de paramètre pour éviter les risques potentiels.
En combinant parse_url () et parse_str () , vous pouvez facilement réaliser l'analyse complète des URL et extraire des informations telles que le protocole, l'hôte, le chemin, le chemin, les paramètres de requête, etc. Qu'il s'agisse de développer des interfaces API, de gérer les redirectes ou d'effectuer une vérification des données, ces deux fonctions sont des outils puissants pour le traitement des URL. La maîtrise de leur utilisation apportera une efficacité plus élevée et une structure logique plus claire à votre développement de PHP.