本文实例讲述了PHP实现UTF8二进制及明文字符串的转化功能。分享给大家供大家参考,具体如下:
<?php /***********本程序由云客编写。有空的时候承接php软件开发 *满足一下新手们的好奇心,看看UTF-8的二进制是什么样子滴 ****************************/ define("b", "<br>"); $a = "FE"; $a1 = "FF"; $s = 16; $e = 2; echo $s . "进制的" . $a . "表示为" . $e . "进制是" . base_convert($a, $s, $e) . b; echo $s . "进制的" . $a1 . "表示为" . $e . "进制是" . base_convert($a1, $s, $e) . b; $str = "计算机rr我们是谁?"; $strlen = strlen($str); $n = 0; echo $str.'(二进制UTF-8表示):'.b; $str_bin=''; while ($n < $strlen) { $t = ord($str[$n]); $stra=base_convert($t, 10, 2) ; if(strlen($stra)<8) { $stra="0".$stra; } $str_bin.=$stra; $n++; } echo $str_bin.b;//已经翻译为二进制了 $str_bin="1110100010101110101000011110011110101110100101111110011010011100101110100110000101110011111001101000100010010001111001001011101110101100111001101001100010101111111010001011000010000001111011111011110010011111"; //在此输入二进制,程序编码为明文输出 $chr=''; $str=''; for($i=0;$i<strlen($str_bin);$i++) { $chr.=$str_bin[$i]; if(($i+1)%8==0) { $str.=chr(base_convert($chr, 2, 10)); $chr=NULL; } } echo $str;//二进制的UTF8原代码明文 ?>
运行结果:
16进制的FE表示为2进制是11111110 16进制的FF表示为2进制是11111111 计算机rr我们是谁?(二进制UTF-8表示): 1110100010101110101000011110011110101110100101111110011010011100101110100111001001110010111001101000100010010001111001001011101110101100111001101001100010101111111010001011000010000001111011111011110010011111 计算机as我们是谁?
PS:这里再为大家推荐几款相关在线编码转换工具供大家参考使用:
UTF-8编码转换工具:
http://tools.softyun.net/transcoding/convutf
在线编码转换工具(utf-8/utf-32/Punycode/Base64):
http://tools.softyun.net/transcoding/decode_encode_tool
Native/UTF-8在线编码转换工具:
http://tools.softyun.net/transcoding/native2utf8
在线任意进制转换工具:
http://tools.softyun.net/transcoding/hexconvert
希望本文所述对大家PHP程序设计有所帮助。