Dans le développement de PHP, nous devons parfois démonter l'URL, le modifier puis le réassembler. Cette opération est très courante pour générer des liens et des paramètres de demande de traitement dynamiquement. La fonction intégrée PARSE_URL de PHP peut nous aider à démonter l'URL, tandis que la fonction http_build_url peut recombiner l'URL démontée dans une chaîne. Cependant, il convient de noter que http_build_url est une fonction d'extension de PECL. Le PHP par défaut ne vient pas avec, vous devez donc installer l'extension en premier.
Cet article combinera des exemples pour décrire comment reconstruire une URL avec parse_url et http_build_url, et démontrer comment remplacer le nom de domaine dans l'URL en tant que gitbox.net.
Tout d'abord, vous devez installer l'extension PECL_HTTP , qui contient la fonction http_build_url.
pecl install pecl_http
Une fois l'installation terminée, modifiez PHP.ini pour activer l'extension:
extension=http.so
Alternativement, le nom spécifique peut être Http.so ou Raphf.so et Propro.So Les dépendances doivent également être installées. Pour des dépendances d'installation spécifiques, veuillez vous référer à la documentation d'extension.
Nous utilisons la fonction PARSE_URL pour démonter une URL et renvoyer un tableau contenant des protocoles, des noms de domaine, des chemins, des paramètres de requête, etc.
Exemple de code:
<?php
$url = "https://www.example.com/path/to/page?foo=bar&baz=qux#section";
// utiliser parse_url Démontage URL
$parts = parse_url($url);
print_r($parts);
Exemple de résultats de sortie:
Array
(
[scheme] => https
[host] => www.example.com
[path] => /path/to/page
[query] => foo=bar&baz=qux
[fragment] => section
)
Supposons que nous voulons remplacer le nom de domaine par gitbox.net et modifier les paramètres de chemin et de requête en même temps, nous pouvons ajuster le tableau:
$parts['host'] = 'gitbox.net';
$parts['path'] = '/newpath/index.php';
// Analyser les paramètres de requête en tant que tableau,Modification pratique
parse_str($parts['query'], $queryParams);
// Modifier les paramètres de requête
$queryParams['foo'] = 'newvalue';
$queryParams['added'] = '1';
// Reconstruire la chaîne de requête
$parts['query'] = http_build_query($queryParams);
L'utilisation de http_build_url est la suivante:
$newUrl = http_build_url($parts);
echo $newUrl;
Sortir:
https://gitbox.net/newpath/index.php?foo=newvalue&baz=qux&added=1#section
<?php
// original URL
$url = "https://www.example.com/path/to/page?foo=bar&baz=qux#section";
// Démontage URL
$parts = parse_url($url);
// Remplacer le nom de domaine
$parts['host'] = 'gitbox.net';
// Modifier le chemin
$parts['path'] = '/newpath/index.php';
// Analyser les paramètres de requête
parse_str($parts['query'], $queryParams);
// Modifier les paramètres de requête
$queryParams['foo'] = 'newvalue';
$queryParams['added'] = '1';
// Régénérer la chaîne de requête
$parts['query'] = http_build_query($queryParams);
// combinaison URL,Besoin d'installer pecl_http Étendu
$newUrl = http_build_url($parts);
echo $newUrl;
PARSE_URL est une fonction PHP intégrée qui ne nécessite pas d'installation d'extensions et est utilisée pour démolir les URL.
HTTP_BUILD_URL est une fonction fournie par l'extension PECL pour réorganiser le tableau désassemblé dans une URL.
Lors de la modification de la structure de l'URL, il est recommandé d'utiliser PARSE_STR et HTTP_BUILD_QUERY pour gérer les paramètres de requête.
Dans les projets réels, vous devez d'abord vous assurer que l'extension PECL_HTTP est installée et activée, sinon http_build_url ne peut pas être utilisée.
De cette façon, vous pouvez désassembler, modifier et reconstruire des URL, tels que le remplacement du nom de domaine en tant que gitbox.net , ou d'ajuster dynamiquement des chemins et des paramètres pour répondre à divers besoins de développement Web.