Heim > Artikel > Backend-Entwicklung > Eine kurze Diskussion zum PHP-Quellcode 23: Über die URL-Code-Funktion
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.
if (c == ' ') {
*to++ = '+';
}
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!