php漢字をバイナリ10進数16進数に変換
2025 ワード
<?php
/**
* unicode , , ,
* : utf-8 ,
* , , PHP
* @author xieye
*
* @param {string} $word , ( str_split )
* @return {string} unicode , 4f60, “ ”
*
* @example
echo " ".getUnicodeFromOneUTF8(" ");
echo "<br />";
echo " ".getUnicodeFromOneUTF8(" ");
echo "<br />";
echo " ".getUnicodeFromOneUTF8(" ");
echo "<br />";
echo " ".getUnicodeFromOneUTF8(" ");
20320
22909
251503099357000
4.21952182258E+21
*/
function getUnicodeFromOneUTF8($word) {
// , utf-8 !
if (is_array( $word))
$arr = $word;
else
$arr = str_split($word);
// ,$arr array(228, 189, 160)
//
$bin_str = '';
// , 。
foreach ($arr as $value)
$bin_str .= decbin(ord($value));
// ,$bin_str 111001001011110110100000, " "
//
$bin_str = preg_replace('/^.{4}(.{4}).{2}(.{6}).{2}(.{6})$/','$1$2$3', $bin_str);
// , $bin_str 0100111101100000, " "
return bindec($bin_str);
// 20320, " "
//return dechex(bindec($bin_str));
// 4f60,
}
echo " ".getUnicodeFromOneUTF8(" ");
echo "<br />";
echo " ".getUnicodeFromOneUTF8(" ");
echo "<br />";
echo " ".getUnicodeFromOneUTF8(" ");
echo "<br />";
echo " ".getUnicodeFromOneUTF8(" ");
exit;
?>