Avec la popularité d'Internet, la transmission de données devient de plus en plus courante. Dans les communications réseau, il est souvent nécessaire de convertir certaines données sous une forme reconnaissable par l'URL, ce qui introduit la notion de codage d'URL. Le langage PHP dispose également d'une riche bibliothèque de fonctions intégrée, qui peut jouer un rôle important dans la mise en œuvre du codage d'URL.
1. Le concept de codage d'URL
URL est appelé Uniform Resource Locator (Uniform Resource Locator) en anglais. C'est une adresse qui identifie des ressources sur Internet. Elle est généralement constituée d'en-têtes de protocole, de noms de domaine, de chemins, etc. Le codage d'URL consiste à encoder les caractères spéciaux de l'URL sous une forme reconnaissable.
Les méthodes de codage d'URL implémentées dans différentes langues sont différentes, mais elles échappent ou remplacent toutes les caractères spéciaux dans l'URL pour éviter toute confusion avec l'adresse elle-même.
2. Caractères spéciaux courants dans l'encodage d'URL
Les caractères spéciaux d'URL courants sont les suivants :
3. Fonction d'encodage d'URL de PHP
Il existe de nombreuses fonctions d'encodage d'URL en PHP, telles que urlencode(), rawurlencode(), urlencode() et http_build_query(), etc. Ci-dessous, examinons leurs différentes manières d’implémenter le codage d’URL. La fonction
urlencode() est la fonction d'encodage d'URL intégrée de PHP. Il encode les caractères de l'URL et remplace les caractères spéciaux de l'URL par des chaînes spécifiques (par exemple, « %20 » représente des espaces, etc.).
Voici la syntaxe de la fonction urlencode() :
string urlencode ( string $str )
Description :
$str : La chaîne qui doit être encodée.
Ce qui suit est un exemple d'utilisation de la fonction urlencode() :
<?php $str = "编码和解码 URL 中的字符串"; echo urlencode($str); ?>
Résultat de sortie :
%E7%BC%96%E7%A0%81%E5%92%8C%E8%A7%A3%E7%A0%81%20URL%20%E4%B8%AD%E7%9A%84%E5%AD%97%E7%AC%A6%E4%B8%B2
la fonctionrawurlencode() est une méthode d'encodage d'URL intégrée à PHP. Contrairement à la fonction urlencode(), elle n’encode pas les espaces. Cette fonction encodera tous les caractères non alphanumériques de l'URL sous la forme %XX, où XX est la représentation hexadécimale du code ASCII du caractère.
Voici la syntaxe de la fonction rawurlencode() :
string rawurlencode ( string $str )
Description :
$str : la chaîne qui doit être encodée.
Ce qui suit est un exemple d'utilisation de la fonction rawurlencode() :
<?php $str = "编码和解码 URL 中的字符串"; echo rawurlencode($str); ?>
Résultat de sortie :
%E7%BC%96%E7%A0%81%E5%92%8C%E8%A7%A3%E7%A0%81%20URL%20%E4%B8%AD%E7%9A%84%E5%AD%97%E7%AC%A6%E4%B8%B2
http_build_query() peut encoder un tableau selon les spécifications d'encodage d'URL et renvoyer la chaîne encodée.
Voici la syntaxe de la fonction http_build_query() :
string http_build_query ( mixed $query_data [, string $numeric_prefix = NULL [, string $arg_separator = NULL [, int $enc_type = PHP_QUERY_RFC1738 ]]] )
Description :
$query_data : le tableau qui doit être encodé.
$numeric_prefix : Le préfixe de la clé du tableau. La valeur par défaut est "null" sans préfixe.
$arg_separator : Le séparateur de la chaîne encodée. La valeur par défaut est "&".
$enc_type : méthode d'encodage des url. La valeur par défaut est PHP_QUERY_RFC1738, qui indique la méthode standard RFC1738 pour le codage d'URL.
Ce qui suit est un exemple d'utilisation de http_build_query() :
<?php $data = array( 'name' => 'Alice', 'age' => 25, 'address' => 'New York' ); echo http_build_query($data); ?>
Résultat de sortie :
name=Alice&age=25&address=New+York
Il existe plusieurs façons ci-dessus d'implémenter l'encodage d'URL en PHP, chacune a ses propres avantages et inconvénients, et vous pouvez choisir de l'utiliser en fonction à des besoins spécifiques. Pour les développeurs PHP, comprendre ces méthodes d’encodage et les bibliothèques de fonctions correspondantes peut faciliter l’encodage des URL.
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!