源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

浅析PHP的ASCII码转换类

  • 时间:2020-06-13 19:16 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:浅析PHP的ASCII码转换类
[u]复制代码[/u] 代码如下:
class ascii { function decode($str) {     preg_match_all( "/(d{2,5})/", $str,$a);     $a = $a[0];     foreach ($a as $dec)     {         if ($dec < 128)         {             $utf .= chr($dec);         }         else if ($dec < 2048)        {             $utf .= chr(192 + (($dec - ($dec % 64)) / 64));             $utf .= chr(128 + ($dec % 64));         }         else         {             $utf .= chr(224 + (($dec - ($dec % 4096)) / 4096));             $utf .= chr(128 + ((($dec % 4096) - ($dec % 64)) / 64));             $utf .= chr(128 + ($dec % 64));         }     }     return $utf; } function encode($c) {     $len = strlen($c);     $a = 0;     while ($a < $len)     {         $ud = 0;         if (ord($c{$a}) >=0 && ord($c{$a})< =127)         {             $ud = ord($c{$a});             $a += 1;         }         else if (ord($c{$a}) >=192 && ord($c{$a})< =223)         {             $ud = (ord($c{$a})-192)*64 + (ord($c{$a+1})-128);             $a += 2;         }         else if (ord($c{$a}) >=224 && ord($c{$a})< =239)         {             $ud = (ord($c{$a})-224)*4096 + (ord($c{$a+1})-128)*64 + (ord($c{$a+2})-128);             $a += 3;         }         else if (ord($c{$a}) >=240 && ord($c{$a})< =247)         {             $ud = (ord($c{$a})-240)*262144 + (ord($c{$a+1})-128)*4096 + (ord($c{$a+2})-128)*64 + (ord($c{$a+3})-128);             $a += 4;         }         else if (ord($c{$a}) >=248 && ord($c{$a})< =251)         {             $ud = (ord($c{$a})-248)*16777216 + (ord($c{$a+1})-128)*262144 + (ord($c{$a+2})-128)*4096 + (ord($c{$a+3})-128)*64 + (ord($c{$a+4})-128);             $a += 5;         }         else if (ord($c{$a}) >=252 && ord($c{$a})< =253)         {             $ud = (ord($c{$a})-252)*1073741824 + (ord($c{$a+1})-128)*16777216 + (ord($c{$a+2})-128)*262144 + (ord($c{$a+3})-128)*4096 + (ord($c{$a+4})-128)*64 + (ord($c{$a+5})-128);             $a += 6;         }         else if (ord($c{$a}) >=254 && ord($c{$a})< =255)         { //error             $ud = false;         }         $scill .= "&#$ud;";     }     return $scill; }
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部