PHP中對於URL進行編碼,可以使用 urlencode() 或者rawurlencode(),二者的區別是前者把空格編碼為 \'+\',而後者把空格編碼為 \'%20\',不過應該注意的是,在編碼時應該只對部分URL編碼,否則URL中的冒號和反斜槓也會被轉義。下面是詳細解釋:
string urlencode ( string str)
返回字符串,此字符串中除了 -_. 之外的所有非字母數字字符都將被替換成百分號(%)後跟兩位十六進制數,空格則編碼為加號(+)。
例子 1 :urlencode函數與rawurlencode函數區別
代碼如下 復制代碼 <?php
url結果:
%B2%A9+%BF%CD
%B2%A9%20%BF%CD例子 2 :url中文編碼方法
從url:"http://www.baidu.com/s?wd=博 客" 轉為 url:http://www.baidu.com/s?wd=%E5%8D%9A%20%E5%AE%A2;
<?php
$url='http://www.baidu.com/s?wd=博 客';
$arr=explode('=',$url);
$url=$arr[0].'='.rawurlencode($arr[1]);
echo $url;
?>
結果:
http://www.baidu.com/s?wd=%E5%8D%9A%20%E5%AE%A2
或許用以下url編碼函數
代碼如下 復制代碼 <?phpurl結果:
http://www.baidu.com/s?wd=%E5%8D%9A%20%E5%AE%A2