PHP在搜索分页时,想将搜索的汉字也带在url里面,请问如何编码和解码,使得在url看不到汉字,同时达到搜索的目的。
欢迎选择我的课程,让我们一起见证您的进步~~
你可以多次urlencode编码,那就看不到了
使用urlencode函数处理汉字
在网上找到一个解决方案:<?phpfunction myEncode($str){
$arrReturn=array(); for($i=0;$i<strlen($str);++$i){ $a=dechex(ord($str{$i})); //ord() 函数返回字符串的首个字符的 ASCII 值。dechex() 函数把十进制转换为十六进制。 for($j=0;$j<strlen($a);++$j){ $char=$a{$j}; if($char>='a'){//是字母 $arrReturn[]=chr(ord($char)+10); }else{ //是数字 //0->a,1->b,2->c ,3->d //即chr(ord($char)-ord('0')+ord('a')); //=chr(ord($char)-48+97) //=chr(ord($char+49) $arrReturn[]=chr(ord($char)+49); } } } return implode('',$arrReturn);
}echo myEncode('苹果').'<br/>';//oiilljogjojm
function myDecode($str){
$chinese=array(); for($i=0;$i<strlen($str);$i+=2){ $arr=array(); for($j=0;$j<2;$j++){ $char=$str{$i+$j}; //107=ord('a')+10 $arr[]= ord($char)>=107 ? chr(ord($char)-10):chr(ord($char)-49); } $chinese[]= chr(hexdec($arr[0].$arr[1])); } return implode('',$chinese);
}echo myDecode('oelnkaofkfln');//苹果?>
放在cookie里面...
你可以多次urlencode编码,那就看不到了
使用urlencode函数处理汉字
在网上找到一个解决方案:
<?php
function myEncode($str){
}
echo myEncode('苹果').'<br/>';//oiilljogjojm
function myDecode($str){
}
echo myDecode('oelnkaofkfln');//苹果
?>
放在cookie里面...