PHP将中文字符串转换为数字

风之舞 2024-04-23 09:54:39 99
php 
简介: PHP将中文字符串转换为数字

$str = “京ICP备安112123122123号-21212A”;
$code_str = str_to_charCodeAt($str);
var_dump($code_str);
var_dump(charCodeAt_to_str($code_str));
exit;

function str_to_charCodeAt($str,$from_encoding='utf-8',$exp='n')//等同于js的charCodeAt()
{
    $l=mb_strlen($str,$from_encoding);
    for($i = 0;$i<$l;++$i)  $result[] = uniord(mb_substr($str,$i,1,'utf-8'));
    foreach($result as $v){
        $v = dechex($v);
        $s.=$exp.$v;
    }
    return $s;
}
function uniord($str,$from_encoding = false)
{
    $from_encoding = $from_encoding ? $from_encoding : 'UTF-8';
    if (strlen($str) == 1)  return ord($str);
    $str = mb_convert_encoding($str,'UCS-4BE',$from_encoding);
    $tmp = unpack('N', $str);
    return $tmp[1];
}


$str = "京ICP备安112123122123号-21212A";
$len = strlen($str);
for ($i=0;$i<=$len;$i++){
   if(ord($str[$i]) > 127){
//         $res[] = $str[$i]."".$str[++$i]."".$str[++$i];
         $res[] = ord($str[$i]).",".ord($str[++$i]).",".ord($str[++$i]);
   }
}
foreach ($res as $k=>$v){
    $desc = explode(",",$v);
    echo chr($desc[0]).chr($desc[1]).chr($desc[2]).PHP_EOL;
}