php ASCII文字変換(漢字および特殊文字) ワイド文字(uft8/unicode)

WBOY
リリース: 2016-06-13 13:02:43
オリジナル
980 人が閲覧しました

php ASCII 文字変換 ​​(漢字および特殊文字) ワイド文字 (uft8/unicode)

?

は、現在一般的な入力方法の特殊文字に似ています。

?


1. 英語の文字または数字を ASCII に変換する効果は上記の通りです

?

クラス:

?

<?
class ascii
{
    var $asciiText;
    
    function ascii($text,$style)
    {
        switch($style)
        {
           case 'graffiti': include "graffiti.font"; break;
           case 'banner': include 'banner.font'; break;
           default: include 'dos.font'; break;
        }

        $text=strtolower($text);

        for($c=0;$c<strlen($text);$c++) $symbol[$c]=explode("\n",$arr[$text[$c]]);

        for($c=0;$c<sizeof($symbol[0]);$c++):
            for($k=0;$k<strlen($text);$k++) $output.=" ".str_replace("\r","",$symbol[$k][$c]);
            $output.="\n";
        endfor;
        
        $this->asciiText=$output;
    }
}
ログイン後にコピー
?

例:

?

<PRE>
<?

include_once("ascii.class.php");        // includes the class's file
$text=new ascii("justcoding","doc");          // first parameter is text that will be converted, second is the font style
print $text->asciiText;                 // asciiText is variable of converted text

?>
ログイン後にコピー
?

文字サイズはCSSで制御できます。詳細については、添付ファイルを参照してください。

?

2. 漢字を ASCII に変換すると、「星期天」、つまり「日曜日」になります

?

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

echo encode('日'); // &#26085; 浏览器默认会解读,所以要看源代码
ログイン後にコピー

?

3. UTF-8 Unicode 変換

?

<?
// utf8 - unicode
function utf8_unicode($c) {
   switch(strlen($c)) {
     case 1:
       return ord($c);
     case 2:
       $n = (ord($c[0]) & 0x3f) << 6;
       $n += ord($c[1]) & 0x3f;
       return $n;
     case 3:
       $n = (ord($c[0]) & 0x1f) << 12;
       $n += (ord($c[1]) & 0x3f) << 6;
       $n += ord($c[2]) & 0x3f;
       return $n;
     case 4:
       $n = (ord($c[0]) & 0x0f) << 18;
       $n += (ord($c[1]) & 0x3f) << 12;
       $n += (ord($c[2]) & 0x3f) << 6;
       $n += ord($c[3]) & 0x3f;
       return $n;
   }
}

echo utf8_unicode('以');
?>
ログイン後にコピー
?
<?
// unicode - utf8
function u2utf8($c) {  
	$str="";  
	if ($c < 0x80) $str.=$c;  
	else if ($c < 0x800) {  
		$str.=chr(0xC0 | $c>>6);  
		$str.=chr(0x80 | $c & 0x3F);  
	} else if ($c < 0x10000) {  
		$str.=chr(0xE0 | $c>>12);  
		$str.=chr(0x80 | $c>>6 & 0x3F);  
		$str.=chr(0x80 | $c & 0x3F);  
	} else if ($c < 0x200000) {  
		$str.=chr(0xF0 | $c>>18);  
		$str.=chr(0x80 | $c>>12 & 0x3F);  
		$str.=chr(0x80 | $c>>6 & 0x3F);  
		$str.=chr(0x80 | $c & 0x3F);  
	}
	return $str;  
}

echo u2utf8('20197');
?>
ログイン後にコピー
?

?

?

?

?

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート