Maison > développement back-end > tutoriel php > Quand dois-je utiliser « urlencode » ou « rawurlencode » ?

Quand dois-je utiliser « urlencode » ou « rawurlencode » ?

DDD
Libérer: 2024-12-01 21:54:15
original
670 Les gens l'ont consulté

URL Encoding Quandary: When Should I Use `urlencode` vs. `rawurlencode`?

Disséquer les différences : urlencode vs rawurlencode

Lors de la construction d'une URL à partir d'une chaîne variable, les développeurs disposent de deux options d'encodage : urlencode() et rawurlencode(). Cet article approfondit les distinctions essentielles entre les deux fonctions pour fournir des conseils sur leur utilisation appropriée.

rawurlencode : une chaîne transformée avec l'adhésion RFC

rawurlencode est conforme aux spécifications décrit dans la RFC 1738 (pré-PHP 5.3.0) et la RFC 3986 (post-PHP 5.3.0). Il remplace les caractères non alphanumériques par " " et deux chiffres hexadécimaux. Cette méthode de codage protège les caractères littéraux contre les interprétations erronées en tant que délimiteurs d'URL et protège les URL contre les conversions de caractères pouvant survenir lors de la transmission.

urlencode : une dérogation à la RFC avec le codage de signe plus

urlencode, en revanche, s'écarte de la conformité RFC d'une manière spécifique : il code les espaces sous forme de signes " " au lieu de " , » une technique de codage cohérente avec la publication de données à partir d'un formulaire WWW.

Quand utiliser lequel

Le choix approprié entre urlencode et rawurlencode dépend de l'objectif visé. Si l’interopérabilité avec d’autres systèmes est primordiale, le rawurlencode apparaît comme l’option privilégiée. Cependant, pour les systèmes existants qui attendent des chaînes de requête codées sous forme de formulaire où les espaces sont codés comme " " plutôt que " , " urlencode reste le choix nécessaire.

Nuances RFC

Il convient de noter la distinction subtile entre RFC 1738 et RFC 3986 dans le contexte du rawurlencode. Avant PHP 5.3, le rawurlencode était aligné sur la RFC 1738, qui nécessitait l'encodage du caractère tilde (~). Cependant, à partir de PHP 5.3, la fonction adhère à la RFC 3986, qui juge le codage tilde inutile.

Considérations supplémentaires

La RFC 2396 fournit des informations supplémentaires sur la syntaxe URI valide. Surtout, il identifie " " comme un caractère réservé dans une chaîne de requête, nécessitant son codage selon la RFC 3986. Par conséquent, le rawurlencode reste la méthode de codage préférée lors de la conformité à la RFC 2396.

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal