php to encode the URL, you can use UrlEncode () or Rawurlencode (), the difference is that the former to encode the space as ' + ', and the latter to encode the space as '% 20 ', but it should be noted that the encoding should be encoded only for part of the URL, otherwise the colon and backslash in the URL will also be escaped. Here is a detailed explanation:
Copy Code code as follows:
String UrlEncode (String str)
Returns a string, in addition to the-_ in this string. All non-alphanumeric characters are replaced with a percent sign (%) followed by a two-bit hexadecimal number, and the space is encoded as a plus (+).
example 1:urlencode function and Rawurlencode function difference
Copy Code code as follows:
$str = ' blog ';
echo UrlEncode ($STR);
echo "<br>";
echo Rawurlencode ($STR);
URL Result:
Copy Code code as follows:
%b2%a9+%bf%cd
%b2%a9%20%bf%cd
Example 2:url Chinese coding method
From URL: "http://www.baidu.com/s?wd= blog" to URL: "Http://www.baidu.com/s?wd=%E5%8D%9A%20%E5%AE%A2";
Copy Code code as follows:
$url = ' http://www.baidu.com/s?wd= blog ';
$arr =explode (' = ', $url);
$url = $arr [0]. ' = '. Rawurlencode ($arr [1]);
echo $url;
Results:
Http://www.baidu.com/s?wd=%E5%8D%9A%20%E5%AE%A2
Perhaps using the following URL encoding function
Copy Code code as follows:
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;
}
URL Result:
Http://www.baidu.com/s?wd=%E5%8D%9A%20%E5%AE%A2