PHP在搜索分页时,想将搜索的汉字也带在url里面,请问如何编码和解码,使得在url看不到汉字,同时达到搜索的目的。
在网上找到一个解决方案:
<?php
function 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');//苹果
?>
1 回答4.1k 阅读✓ 已解决
3 回答1.9k 阅读✓ 已解决
2 回答2.2k 阅读✓ 已解决
2 回答2.2k 阅读
1 回答1.4k 阅读✓ 已解决
798 阅读
648 阅读
你可以多次urlencode编码,那就看不到了