PHP javascript的escape和unescape函数

  1. JavaScript unescape() escape() 函数

    <script type="text/javascript">
    var test1="hhh‘hhh"
    
    test1=escape(test1)
    document.write("escape  :  "+test1 + "<br />")
    
    test1=unescape(test1)
    document.write("unescape  :  "+test1 + "<br />")
    
    </script>

    运行结果

    escape : hhh%u2018hhh
    unescape : hhh‘hhh

  2. php 函数 实现 js escape unescape

    function escape($string, $in_encoding = 'UTF-8',$out_encoding = 'UCS-2') { 
        $return = ''; 
        if (function_exists('mb_get_info')) { 
            for($x = 0; $x < mb_strlen ( $string, $in_encoding ); $x ++) { 
                $str = mb_substr ( $string, $x, 1, $in_encoding ); 
                if (strlen ( $str ) > 1) { // 多字节字符 
                    $return .= '%u' . strtoupper ( bin2hex ( mb_convert_encoding ( $str, $out_encoding, $in_encoding ) ) ); 
                } else { 
                    $return .= '%' . strtoupper ( bin2hex ( $str ) ); 
                } 
            } 
        } 
        return $return; 
    }
    function 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] == '%') 
                { 
                    $ret .= urldecode(substr($str, $i, 3)); 
                    $i += 2; 
                } else 
                    $ret .= $str[$i]; 
        } 
        return $ret; 
    }
      public function index() {
        $str = 'hhh’hhh';
        $str = escape($str);
        dump(str);
    
        $str = unescape($str);
        dump(str);
     }

    结果:

    hhh%u2018hhh
    hhh’hhh

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值