登录

php搜索分页的问题

PHP在搜索分页时,想将搜索的汉字也带在url里面,请问如何编码和解码,使得在url看不到汉字,同时达到搜索的目的。

# PHP
天蓬老师天蓬老师2153 天前562 次浏览

全部回复(4) 我要回复

  • PHPzhong

    PHPzhong2017-04-10 16:37:13

    你可以多次urlencode编码,那就看不到了

    回复
    0
  • 巴扎黑

    巴扎黑2017-04-10 16:37:13

    使用urlencode函数处理汉字

    回复
    0
  • PHPzhong

    PHPzhong2017-04-10 16:37:13

    在网上找到一个解决方案:
    <?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');//苹果
    ?>

    回复
    0
  • ringa_lee

    ringa_lee2017-04-10 16:37:13

    放在cookie里面...

    回复
    0
  • 取消回复发送