ホームページ  >  記事  >  バックエンド開発  >  PHP から ASCII への実装

PHP から ASCII への実装

WBOY
WBOYオリジナル
2016-06-23 13:40:541037ブラウズ

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 转 ASCIIrequire_once "ascii_class.php";*/$aa = new ascii;echo $aa -> encode("a");?>
次の記事: 中国語エンコーディング コレクション クラス ライブラリ

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。