Dieser Artikel stellt hauptsächlich die Analyse der URL-Kodierungsfunktion urlencode() in PHP vor. Jetzt kann ich ihn mit Ihnen teilen.
URLEncode: bezieht sich darauf Eine Methode zum Kodieren und Konvertieren chinesischer Zeichen in Webseiten-URLs. Die gebräuchlichste Methode besteht darin, eine kodierte Webseiten-URL zu generieren, wenn eine chinesische Suchanfrage in Suchmaschinen wie Baidu und Google eingegeben wird.
Im Allgemeinen gibt es zwei Methoden für URLEncode: Eine ist die traditionelle Codierung basierend auf GB2312 (verwendet von Baidu, Yisou usw.) und die andere basiert auf UTF-8-Codierung (verwendet von Google, Yahoo, usw.).
Dieses Tool implementiert zwei Methoden zum Kodieren und Dekodieren:
Chinesisch-> Kodierung von GB2312 -> %E4%B8%AD%E6%96%87
URLEncode in Html:
In HTML-Datei codiert als GB2312: http://s.php.cn/中文.rar -> Browser Automatisch konvertiert in - > http://s.php.cn/%D6%D0%CE%C4.rar
Hinweis: Firefox unterstützt die chinesische URL von GB2312 Encode nicht, da sie standardmäßig UTF-8 verwendet. Die URL wird codiert und gesendet , aber das ftp://-Protokoll ist in Ordnung. Ich denke, das sollte als Firefox-Fehler angesehen werden.
In der als UTF-8 kodierten HTML-Datei: http://s.php.cn/中文.rar -> Der Browser konvertiert automatisch in -> B8%AD%E6%96%87.rar
URLEncode in PHP:
<?php //GB2312的Encode echo urlencode("中文-_. ")."\n"; //%D6%D0%CE%C4-_.+ echo urldecode("%D6%D0%CE%C4-_. ")."\n"; //中文-_. echo rawurlencode("中文-_. ")."\n"; //%D6%D0%CE%C4-_.%20 echo rawurldecode("%D6%D0%CE%C4-_. ")."\n"; //中文-_. ?>
Der Unterschied zwischen Urlencode und Rawurlencode: Urlencode kodiert Leerzeichen als Pluszeichen „+“ und Rawurlencode kodiert Leerzeichen als Pluszeichen „%20“.
Wenn Sie UTF-8 Encode verwenden möchten, gibt es zwei Methoden:
1. Speichern Sie die Datei als UTF-8-Datei und verwenden Sie direkt URL-Code oder RawURL-Code.
2. Verwenden Sie die Funktion mb_convert_encoding:
<?php $url = 'http://s.php.cn/中文.rar'; echo urlencode(mb_convert_encoding($url, 'utf-8', 'gb2312'))."\n"; echo rawurlencode(mb_convert_encoding($url, 'utf-8', 'gb2312'))."\n"; //http%3A%2F%2Fs.jb51.net%2F%E4%B8%AD%E6%96%87.rar ?>
<?php function parseurl($url="") { $url = rawurlencode(mb_convert_encoding($url, 'gb2312', 'utf-8')); $a = array("%3A", "%2F", "%40"); $b = array(":", "/", "@"); $url = str_replace($a, $b, $url); return $url; } $url="ftp://ud03:password@s.php.cn/中文/中文.rar"; echo parseurl($url); //ftp://ud03:password@s.php.cn/%D6%D0%CE%C4/%D6%D0%CE%C4.rar ?>
Zum Beispiel: %E4%B8%AD%E6%96%87-_ . %20%E4%B8%AD%E6%96%87-_.%20
encodeURI codiert die folgenden Zeichen nicht: „“, „/“, „;“, „?“, „@“ und andere Sonderzeichen.
Zum Beispiel: http://s.php.cn/%E4%B8%AD%E6%96%87.rarhttp%3A%2F%2Fs.jb51.net%2F%E4%B8%AD%E6 % 96%87.rar
PHP implementiert die Unternehmenskonto-Verifizierungsschnittstelle der öffentlichen WeChat-Plattform
Informationen zum PHP-Funktionscode zum Finden von Polynomableitungen
Das obige ist der detaillierte Inhalt vonÜber die Analyse der URL-Kodierungsfunktion urlencode() in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!