Home > Backend Development > PHP Tutorial > How to handle url encoding in js and php_PHP tutorial

How to handle url encoding in js and php_PHP tutorial

WBOY
Release: 2016-07-13 10:36:48
Original
1014 people have browsed it

This article mainly introduces how js and php handle url encoding. Friends in need can refer to it

Solution: Use js to escape encode the Chinese characters in the URL.​ ​ The code is as follows: ​ The time after clicking the link is as follows: ​ Quote: http://127.0.0.1/shop/product_list.php?p_sort=PHP%u5F00%u53D1%u8D44%u6E90%u7F51 ​ Such an effect is generated, and it is obvious that it cannot be decoded using PHP's urldecode() or base64_decode().​ ​ Solution, use PHP to write an inverse solution function: ​ The code is as follows: function js_unescape($str){           $ret = '';           $len = strlen($str); for ($i = 0; $i < $len; $i++){ If ($ str [$ i] == '%' && $ str [$ i+1] == 'u') { $val = hexdec(substr($str, $i+2, 4)); If ($val < 0x7f) $ret .= chr($val);                                  else if($val < 0x800) $ret .= chr(0xc0|($val>>6)).chr(0x80|($val&0x3f));                                  else $ret .= chr(0xe0|($val>>12)).chr(0x80|(($val>>6)&0x3f)).chr(0x80|($val&0x3f));                                     $i += 5;             } ​                    else if ($str[$i] == '%'){                                                                                                                                                                                                                                                                         through $ret .= urldecode(substr($str, $i, 3));                                   $i += 2;             }                       else $ret .= $str[$i]; } } Return $ret; } ​ ​ ​ Note that JS encoding will be automatically converted to UTF-8, so the encoding must be converted to get the correct result, otherwise the Chinese characters will be garbled.​ The code is as follows: print iconv('utf-8', 'gb2312', js_unescape($_REQUEST['p_sort'])); ​ ​ At this point we have successfully decoded the escape encoding of js.​ ​ In addition, I found a function that uses PHP to implement escape encoding of js: ​ The code is as follows: function phpescape($str){ $sublen=strlen($str); $retrunString=""; for ($i=0;$i<$sublen;$i++){ if(ord($str[$i])>=127){ $tmpString=bin2hex(iconv("gb2312","ucs-2",substr($str,$i,2))); //$tmpString=substr($tmpString,2,2).substr($tmpString,0,2); This may need to be turned on under window $retrunString.="%u".$tmpString; $i++; } else { $retrunString.="%".dechex(ord($str[$i])); }} return $retrunString; }

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/737707.htmlTechArticleThis article mainly introduces the processing method of url encoding in js and php. Friends who need it can refer to the solution below. Method: Use js to escape encode the Chinese characters in the URL. The code is as follows: a hr...
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template