Heim  >  Artikel  >  Backend-Entwicklung  >  Eine kurze Diskussion zum PHP-Quellcode 23: Über die URL-Code-Funktion

Eine kurze Diskussion zum PHP-Quellcode 23: Über die URL-Code-Funktion

不言
不言Original
2018-06-28 17:53:432849Durchsuche

Dieser Artikel führt hauptsächlich eine kurze Diskussion über den PHP-Quellcode 23 ein: Was die URL-Code-Funktion betrifft, kann ich sie jetzt mit Ihnen teilen

Eine kurze Diskussion zum PHP-Quellcode 23: Bezüglich der URL-Code-Funktion

Ich habe den Quellcode von PHP eine Weile nicht gelesen. Ich habe einige der Bücher gelesen, die ich zuvor gekauft habe wurden einmal gelesen, aber ein Jahr später gibt es ein anderes Gefühl

Die URL-Funktion wird häufig während des Entwicklungsprozesses angetroffen. Sie wirkt auf die Zeichenfolgencodierung und verwendet sie für den Anforderungsteil der URL.
Die Funktion der urlencode-Funktion besteht darin, die URL-Zeichenfolge zu kodieren
Zeichenfolge urlencode ( string str )
Gibt eine Zeichenfolge zurück, in der alle nicht alphanumerischen Zeichen außer -_ durch ein Prozentzeichen (%) gefolgt werden durch zwei hexadezimale Ziffern und Leerzeichen. Kodiert als Pluszeichen (+). Diese Kodierung ist dieselbe wie die Kodierung von WWW-Formular-POST-Daten und dieselbe Kodierung wie der Medientyp application/x-www-form-urlencoded. Aus historischen Gründen unterscheidet sich diese Kodierung von der RFC1738-Kodierung (siehe rawurlencode()) darin, dass Leerzeichen als Pluszeichen (+) kodiert werden.
In Zeile 493 der Datei standard/url.c können Sie die Implementierung dieser Funktion sehen

 out_str = php_url_encode(in_str, in_str_len, &out_str_len);RETURN_STRINGL(out_str, out_str_len, 0);

Als ich mir die Funktion php_url_encode ansah, hatte ich eine Weile Probleme, weil sie eine #ifndef CHARSET_EBCDIC-Kompilierung hat Ich habe #ifndef immer als #ifdef betrachtet, was es seltsam macht, es zu verstehen.

Die Funktion php_url_encode ist ein Prozess, bei dem die gesamte Zeichenfolge durchlaufen und jedes Zeichen ersetzt wird. Alphanumerische Zeichen außer _ werden durch ein Prozentzeichen (%) gefolgt von zwei hexadezimalen Ziffern ersetzt.
Es erfolgt eine Verarbeitung für die EBCDIC-Kodierung zur Kompilierungszeit.

Leerzeichen werden als Pluszeichen (+) (

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

Das Obige ist der gesamte Inhalt dieses Artikels, ich hoffe, dass er für das Lernen aller hilfreich sein wird . Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website

Verwandte Empfehlungen:

Eine kurze Diskussion des PHP-Quellcodes 21: Über die Funktion array_slice

Eine kurze Diskussion zum PHP-Quellcode 22: Über die Funktion array_splice

Das obige ist der detaillierte Inhalt vonEine kurze Diskussion zum PHP-Quellcode 23: Über die URL-Code-Funktion. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn