Heim  >  Artikel  >  Backend-Entwicklung  >  Über die Analyse der URL-Kodierungsfunktion urlencode() in PHP

Über die Analyse der URL-Kodierungsfunktion urlencode() in PHP

不言
不言Original
2018-06-21 11:43:052436Durchsuche

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"; //中文-_. 
?>

Alle nicht alphanumerischen Zeichen außer „-_“ werden durch Prozentzeichen „%“ gefolgt von zwei hexadezimalen Ziffern ersetzt .

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 = &#39;http://s.php.cn/中文.rar&#39;; 
echo urlencode(mb_convert_encoding($url, &#39;utf-8&#39;, &#39;gb2312&#39;))."\n"; 
echo rawurlencode(mb_convert_encoding($url, &#39;utf-8&#39;, &#39;gb2312&#39;))."\n"; 
//http%3A%2F%2Fs.jb51.net%2F%E4%B8%AD%E6%96%87.rar 
?>

Beispiel:

<?php 
function parseurl($url="") 
{ 
$url = rawurlencode(mb_convert_encoding($url, &#39;gb2312&#39;, &#39;utf-8&#39;)); 
$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 
?>

URLEncode in JavaScript:

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

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

Verwandte Empfehlungen:

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!

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