javascript中的escape和unescape函數的php實現

jopen 9年前發布 | 3K 次閱讀 PHP

escape函數

/**

  • js escape php 實現
  • @param $string the sting want to be escaped
  • @param $in_encoding
  • @param $out_encoding
    */ 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; } </pre>

    unescape代碼:

    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; }</pre>

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!