国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專(zhuān)注于服務(wù)器技術(shù)及軟件下載分享
分類(lèi)導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語(yǔ)言|JavaScript|易語(yǔ)言|vb.net|

服務(wù)器之家 - 編程語(yǔ)言 - PHP教程 - php urlencode()與urldecode()函數(shù)字符編碼原理詳解

php urlencode()與urldecode()函數(shù)字符編碼原理詳解

2019-12-19 14:52PHP教程網(wǎng) PHP教程

中文字符編碼研究系列第五期,詳解 urlencode()與urldecode()函數(shù)字符編碼原理,兩個(gè)函數(shù)分別用于編碼 URL 字符串和解碼已編碼的 URL 字符串,實(shí)現(xiàn)對(duì)中文字符的編碼

其原理就是把中文字符轉(zhuǎn)換為十六進(jìn)制并按某種規(guī)則進(jìn)行字符串組合,實(shí)現(xiàn)字符的編碼與解編碼,保證URL數(shù)據(jù)傳遞過(guò)程中字符的完整性和兼容性,主要討論中文字符的編碼情況。 

一,F(xiàn)ireFox瀏覽器編碼中文字符 

在Firefox瀏覽器下如果輸入中文字符,將會(huì)自動(dòng)實(shí)現(xiàn)URL編碼,如下 

按下Enter鍵前 
php urlencode()與urldecode()函數(shù)字符編碼原理詳解
按下Enter鍵后
php urlencode()與urldecode()函數(shù)字符編碼原理詳解

二,urlencode()函數(shù)原理 

urlencode()函數(shù)用于編碼URL字符串,這里主要討論中文字符的編碼情況, 

實(shí)例如下 

復(fù)制代碼代碼如下:


echo urlencode('不要迷戀哥');//輸出:%B2%BB%D2%AA%C3%D4%C1%B5%B8%E7 


urlencode()函數(shù)原理就是首先把中文字符轉(zhuǎn)換為十六進(jìn)制,然后在每個(gè)字符前面加一個(gè)標(biāo)識(shí)符%,了解了這個(gè)原理,可以實(shí)現(xiàn)自定義的URL編碼函數(shù),代碼如下 

復(fù)制代碼代碼如下:


$string = "不要迷戀哥"; 
$length = strlen($string); 
echo $string; 
$result = array(); 
//十進(jìn)制 
for($i=0;$i<$length;$i++){ 
if(ord($string[$i])>127){ 
$result[] = ord($string[$i]).' '.ord($string[++$i]); 


var_dump($result); 
//十六進(jìn)制 
$strings = array(); 
foreach($result as $v){ 
$dec = explode(" ",$v); 
$strings[] = "%".dechex($dec[0])." "."%".dechex($dec[1]); 

var_dump($strings); 

 

php urlencode()與urldecode()函數(shù)字符編碼原理詳解

上面代碼在[PHP實(shí)現(xiàn)中文字符進(jìn)制轉(zhuǎn)換原理分析]一文中中文字符轉(zhuǎn)十六進(jìn)制原理分析部分有詳細(xì)討論,通過(guò)獲取漢字的各個(gè)字符再轉(zhuǎn)換為十六進(jìn)制,同時(shí)在每個(gè)字符前面加上一個(gè)特殊的標(biāo)識(shí)符%,就實(shí)現(xiàn)了urlencode()函數(shù)的功能,輸出結(jié)果如下 
然后對(duì)輸出的結(jié)果與直接使用urlencode()編碼的字符進(jìn)行比較,如上:%B2%BB%D2%AA%C3%D4%C1%B5%B8%E7 

通過(guò)上面實(shí)例可知,使用urlencode()函數(shù)編碼中文字符實(shí)質(zhì)上就是把字符轉(zhuǎn)換為十六進(jìn)制再在第個(gè)字符左邊加上一個(gè)特殊的標(biāo)識(shí)符% 

三,urldecode()函數(shù)原理 

使用urldecode()函數(shù)解碼已編碼的 URL 字符串,實(shí)例如下 

echo urldecode('%B2%BB%D2%AA%C3%D4%C1%B5%B8%E7');//輸出:不要迷戀哥 
urldecode()函數(shù)與urlencode()函數(shù)原理相反,用于解碼已編碼的 URL 字符串,其原理就是把十六進(jìn)制字符串轉(zhuǎn)換為中文字符,結(jié)合上面實(shí)例,同樣可實(shí)現(xiàn)自定義函數(shù)解碼字符串 

復(fù)制代碼代碼如下:


$string = '%B2%BB%D2%AA%C3%D4%C1%B5%B8%E7'; 
$length = strlen($string); 
$hexs = array(); 
for($i=0;$i<$length;$i++){ 
if($string[$i] == '%'){ 
$hexs[] = $string[++$i].$string[++$i]; 


$num = count($hexs); 
for($i=0;$i<$num;$i++){ 
echo chr(hexdec($hexs[$i])).chr(hexdec($hexs[++$i])); 


上面實(shí)例代碼首先按字符串的規(guī)則取出各個(gè)字符的十六進(jìn)制,然后使用hexdec()函數(shù)把十六進(jìn)制轉(zhuǎn)換為十進(jìn)制,然后再使用chr()函數(shù)把十進(jìn)制轉(zhuǎn)換為字符,實(shí)現(xiàn)十六進(jìn)制轉(zhuǎn)換為字符。輸出結(jié)果如下 

php urlencode()與urldecode()函數(shù)字符編碼原理詳解

四,urldecode()與urlencode()函數(shù)說(shuō)明

urlencode
(PHP 3, PHP 4, PHP 5)
urlencode -- 編碼 URL 字符串
說(shuō)明
string urlencode ( string str )
返回字符串,此字符串中除了 -_. 之外的所有非字母數(shù)字字符都將被替換成百分號(hào)(%)后跟兩位十六進(jìn)制數(shù),空格則編碼為加號(hào)(+)。此編碼與 WWW 表單 POST 數(shù)據(jù)的編碼方式是一樣的,同時(shí)與 application/x-www-form-urlencoded 的媒體類(lèi)型編碼方式一樣。由于歷史原因,此編碼在將空格編碼為加號(hào)(+)方面與 RFC1738 編碼(參見(jiàn) rawurlencode())不同。此函數(shù)便于將字符串編碼并將其用于 URL 的請(qǐng)求部分,同時(shí)它還便于將變量傳遞給下一頁(yè)

urldecode
(PHP 3, PHP 4, PHP 5)
urldecode -- 解碼已編碼的 URL 字符串
說(shuō)明
string urldecode ( string str )
解碼給出的已編碼字符串中的任何 %##。返回解碼后的字符串。

五,參考資源
urlencode()說(shuō)明 
urldecode()說(shuō)明

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产精品国产成人国产三级 | 国产欧美日韩二区 | 日本三级网址 | 国产精品久久久久久久一区探花 | 免费观看一区二区三区毛片软件 | 一区视频网站 | 国语av在线 | 欧美高清一区 | www.国产| 婷婷午夜天 | 九九热欧美 | 一区二区中文字幕 | 久久精品六 | 久久国产成人 | 日本一区二区视频 | 成人黄网在线观看 | 伊人久久艹 | 久久久久久91香蕉国产 | 91偷拍精品一区二区三区 | 国产在线91| 亚洲精品久久久久久久久久久 | 精品欧美乱码久久久久久1区2区 | 狠狠操综合网 | 成人av免费 | 午夜精品福利一区二区三区蜜桃 | 欧美一区久久 | 久久久久久久一区 | 色久综合| 国产成人精品综合 | 国产馆一区二区 | 国产一区二区三区免费视频 | 糈精国产xxxx在线观看 | 26uuu国产电影一区二区 | 精品久久久久久久久久久 | 1a级毛片免费观看 | 搞黄网站 | 欧美一级大片免费 | 久久极品| 国产高清在线精品一区二区三区 | 亚洲国产综合在线 | 日日摸夜夜 |