跳转到主内容
趣航编程网 - 趣学编程,启航技术之路!

浅析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         {$utf .= chr($dec);}else if ($dec        {$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     {$ud = 0;if (ord($c{$a}) >=0 && ord($c{$a})        {$ud = ord($c{$a});$a += 1;}else if (ord($c{$a}) >=192 && ord($c{$a})        {$ud = (ord($c{$a})-192)*64 + (ord($c{$a+1})-128);$a += 2;}else if (ord($c{$a}) >=224 && ord($c{$a})        {$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})        {$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})        {$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})        {$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})        { //error$ud = false;}$scill .= "$ud;";}return $scill;}

相关文章