Maison  >  Article  >  développement back-end  >  Une brève discussion sur le code source PHP vingt-trois : à propos de la fonction urlencode

Une brève discussion sur le code source PHP vingt-trois : à propos de la fonction urlencode

不言
不言original
2018-06-28 17:53:432773parcourir

Cet article présente principalement le code source PHP 23 : concernant la fonction urlencode, elle a une certaine valeur de référence. Maintenant, je le partage avec vous. Les amis dans le besoin peuvent s'y référer

Une brève présentation. le code source PHP Vingt-trois : Concernant la fonction urlencode

Je n'ai pas lu le code source de PHP depuis un moment. Récemment, j'ai lu les livres que j'ai achetés auparavant. Certains des livres ont été lus. une fois, mais un an plus tard, les choses sont différentes. Feeling

La fonction urlencode est souvent rencontrée lors du processus de développement. Elle agit sur l'encodage des chaînes et est utilisée dans la partie requête de l'URL. La fonction consiste à encoder la chaîne URL
string. urlencode ( string str )
Renvoie une chaîne dans laquelle tous les caractères non alphanumériques sauf -_ seront remplacés par un signe de pourcentage (%) suivi de deux chiffres hexadécimaux, et espaces Codés sous forme de signe plus (+). Cet encodage est le même que l'encodage des données POST du formulaire WWW et le même encodage que le type de média application/x-www-form-urlencoded. Pour des raisons historiques, ce codage diffère du codage RFC1738 (voir rawurlencode()) dans les espaces de codage sous forme de signes plus (+).
Dans la ligne 493 du fichier standard/url.c, vous pouvez voir l'implémentation de cette fonction

 out_str = php_url_encode(in_str, in_str_len, &out_str_len);RETURN_STRINGL(out_str, out_str_len, 0);
En regardant la fonction php_url_encode, j'ai longtemps lutté car elle a un # ifndef CHARSET_EBCDIC Pour juger de la compilation, j'ai toujours considéré #ifndef comme #ifdef, ce qui rend la compréhension étrange

La fonction php_url_encode est un processus consistant à parcourir la chaîne entière et à remplacer chaque caractère

For. Tous les caractères non alphanumériques, à l'exception de -_. seront remplacés par un signe de pourcentage (%) suivi de deux chiffres hexadécimaux
Il y a un traitement pour le codage EBCDIC au moment de la compilation

Les espaces sont codés sous forme de signes plus (. +) (

if (c == ' ') {
*to++ = '+';
}

Ce qui précède est tout le contenu de cet article, j'espère que ce sera utile à l'étude de chacun. Pour plus de contenu connexe, veuillez faire attention au site Web chinois de PHP 🎜>

Une brève discussion sur le code source PHP 22 : à propos de la fonction array_splice

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