To encode URLs in PHP, you can use urlencode() or rawurlencode(). The difference between the two is that the former encodes spaces as '+', while the latter encodes spaces as '%20'. However, it should be noted that when encoding Only part of the URL should be encoded, otherwise colons and backslashes in the URL will also be escaped. Here is a detailed explanation:
1
string urlencode( string str)
Returns a string in which all non-alphanumeric characters except -_. will be replaced with a percent sign (%) followed by two hexadecimal digits, and spaces are encoded as plus signs ( +).
Example 1: The difference between urlencode function and rawurlencode function
$str='blog';
echo urlencode($str);
echo "
";
echo rawurlencode($str);
url result:
%B2%A9+%BF%CD
%B2%A9%20%BF%CD
Example 2: URL Chinese encoding method
From url: "http://www.baidu.com/s?wd=blog"
$url='http://www.baidu.com/s?wd=blog';
$arr=explode('=',$url);
$url=$arr[0].'='.rawurlencode($arr[1]);
echo $url;
Result:
Maybe use the following url encoding function
function cn_urlencode($url){
$pregstr = "/[x{4e00}-x{9fa5}]+/u";//UTF-8 Chinese regular
if(preg_match_all($pregstr,$url,$matchArray)){//Match Chinese, return array
foreach($matchArray[0] as $key=>$val){
$url=str_replace($val, urlencode($val), $url);//Replace translation with Chinese
}
if(strpos($url,' ')){//If there are spaces
$url=str_replace(' ','%20',$url);
}
}
return $url;
}
http://www.bkjia.com/PHPjc/477128.htmlwww.bkjia.comtruehttp: //www.bkjia.com/PHPjc/477128.htmlTechArticleTo encode URLs in PHP, you can use urlencode() or rawurlencode(). The difference between the two is that the former Spaces are encoded as +, while the latter encodes spaces as %20, but it should be noted that...