ホームページ >バックエンド開発 >PHPチュートリアル >PHPのASCIIコードと基数変換関数のサンプルコードを詳しく解説
ASCIIコード比較表は2つのユニットに分かれています
1、制御文字0〜31と127
2、表示可能文字32〜126
(1) 48〜57は0〜9の10個のアラビア数字です
(2) 65〜 90 は 26 個の大文字の英字です。
(3) 97 ~ 122 は 26 個の小文字の英字です。
(4) その他の句読点、演算子数字などです。
などのHxは16進数を表します、たとえば41
Octは101などの8進数を表します
CharはAなどの表示文字を表します
具体的な文字変換関数の説明については、[
PHP関数10進数、2進数、8進数、16進数変換の詳しい説明関数説明】10進数から2進数へのdecbin()関数10進数から8進数へのdecoct()関数10進数から16進数へのdechex()関数
バイナリ変換16進数
bin2hex
() 関数
2 進数から 10 進数へのbindec() 関数 8 進数から 10 進数への octdec() 関数 16 進数から 10 進数への hexdec() 関数
任意の base_convert() 関数
文字変換の例
例 1、文字を次のように変換する方法バイナリ、8 進数、または 16 進数の場合、ord() 関数を使用して最初に文字を ASCII 値に変換し、次に対応する基数変換関数を使用して次のように変換できます
a この文字は 2 進数/8 進数/16 進数に変換されます。以下に示すように
a字符的十进制:ord('a'); //输出97 二进制:decbin(ord('a')); //输出1100001 八进制:decoct(ord('a')); //输出141 十六进制:dechex(ord('a')); //输出61
采用实例一的方法获取a字符的二进制 decbin(ord('a')); 然后把二进制转换为十六进制或十进制 十六进制:bin2hex(decbin(ord('a')));//输出31313030303031 二进制J:bindec(decbin(ord('a'))); //输出97
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コードと基数変換関数のサンプルコードを詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。