麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 語言 > PHP > 正文

php中urlencode與rawurlencode的區別

2024-09-04 11:48:29
字體:
來源:轉載
供稿:網友

urlencode與rawurlencode函數是對url進行一些處理,但在處理時它們是有區別的,特別是對于些特殊字符時它們表現出來的是完全不一樣的,下面我就來詳細舉例子來說明一下這兩個url處理函數吧.

前段時間說自己遇到了個《URL加號引發錯誤》的BUG,引起這個bug的原因就是自己在URL中使用了 urlencode 函數,該函數會把空格轉換成加號,這樣就導致URL解析出錯,而空格只有轉換成 %20 才可以可以正常解析,這時我們就需要使用 rawurlencode 函數。下面就介紹一下 urlencode 函數與 rawurlencode 函數的區別.

urlencode 函數:

返回字符串,此字符串中除了 -_. 之外的所有非字母數字字符都將被替換成百分號(%)后跟兩位十六進制數,空格則編碼為加號(+),此編碼與 WWW 表單 POST 數據的編碼方式是一樣的,同時與 application/x-www-form-urlencoded 的媒體類型編碼方式一樣,由于歷史原因,此編碼在將空格編碼為加號(+)方面與 RFC1738 編碼(參見 rawurlencode())不同.

rawurlencode 函數:

返回字符串,此字符串中除了 -_. 之外的所有非字母數字字符都將被替換成百分號(%)后跟兩位十六進制數,這是在 » RFC 3986 中描述的編碼,是為了保護原義字符以免其被解釋為特殊的 URL 定界符,同時保護 URL 格式以免其被傳輸媒體(像一些郵件系統)使用字符轉換時弄亂,下面我們來看一下例子:

  1. <?php 
  2. $string = "hello world"
  3. echo urlencode($string) . '<br/>'//輸出:hello+world 
  4. echo rawurldecode($string) . '<br/>';//輸出:hello%20world 
  5. ?> 

具體例子比較,代碼如下:

  1. <?php 
  2. for ($i = 0x20; $i < 0x7f; $i++) {  
  3. $str .= dechex($i);  
  4. $asscii = pack("H*",$str);  
  5. echo "所有的可打印的asscii字符:(從空格到~)n"$asscii."/n";  
  6. echo "urlencode 的結果:/n".urlencode($asscii);  
  7. echo "/n";  
  8. echo "urlencode 不做編碼的字符:/n".preg_replace("/%.{2}/","",urlencode($asscii));  
  9. echo "/n";  
  10. echo "rawurlencode 的結果:/n".rawurlencode($asscii);  
  11. echo "/n";  
  12. echo "rawurlencode 不做編碼的字符:/n".preg_replace("/%.{2}/","",rawurlencode($asscii));  
  13. echo  "/n"
  14. exit
  15. ?> 
  16. /*輸出結果: 
  17. 所有的可打印的asscii字符:(從空格到~) 
  18. !"#$%&’()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[/]^_abcdefghijklmnopqrstuvwxyz{|}~ 
  19. urlencode 的結果: 
  20. +%21%22%23%24%25%26%27%28%29%2A%2B%2C-.%2F0123456789%3A%3B%3C%3D%3E%3F%40ABCDEFGHIJKLMNOPQRSTUVWXYZ%5B%5C%5D%5E_%60abcdefghijklmnopqrstuvwxyz%7B%7C%7D%7E 
  21. urlencode 不做編碼的字符: 
  22. +-.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz 
  23. rawurlencode 的結果: 
  24. %20%21%22%23%24%25%26%27%28%29%2A%2B%2C-.%2F0123456789%3A%3B%3C%3D%3E%3F%40ABCDEFGHIJKLMNOPQRSTUVWXYZ%5B%5C%5D%5E_%60abcdefghijklmnopqrstuvwxyz%7B%7C%7D%7E 
  25. rawurlencode 不做編碼的字符: 
  26. -.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz 
  27. */ 

比較二者的結果:

1.數字、大小寫字母都不編碼

2.減號、點號、下劃線  三個不編碼

3.rawurlencode比urlencode多編碼一個”加號“

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 久色视频网站 | 黄视频免费观看 | 72pao成人国产永久免费视频 | 福利在线播放 | av日韩一区二区 | 欧美久久久一区二区三区 | 欧美日韩专区国产精品 | 中国黄色一级生活片 | 制服丝袜成人动漫 | 亚洲第一色片 | 一级做a爰片性色毛片2021 | 亚洲第九十九页 | 91精品国产综合久久婷婷香蕉 | 亚洲aⅴ在线观看 | 韩国一级免费视频 | 九色免费视频 | 国产精品免费视频观看 | 国产91影院 | 亚洲免费视频大全 | 久久免费视频精品 | 在线视频 亚洲 | av在线视 | 国产精品区一区二区三区 | 免费中文视频 | 最新一区二区三区 | 色999久久久精品人人澡69 | 欧美亚洲黄色片 | 精品国产精品久久 | 中文字幕一区在线观看视频 | 免费日本一区二区 | 亚洲性综合网 | 在线影院av | 蜜桃一本色道久久综合亚洲精品冫 | 亚洲天堂午夜 | 法国性xxx精品hd | 欧美精品一区二区三区在线 | 精品一区二区三区不卡 | 欧美国产一区二区三区 | 欧美女同hd | 国产精品中文在线 | 国产papa|