首页 > 代码库 > 实现PHP 转 ASCII
实现PHP 转 ASCII
实现PHP 转 ASCII
<?php 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; } } /* PHP 转 ASCII require_once "ascii_class.php"; */ $aa = new ascii; echo $aa -> encode("a"); ?>下一篇 :中文编码集合类库
实现PHP 转 ASCII
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。