您现在的位置是: 网站首页>文章详情 文章详情

php如何将数字转换成汉字

Heartless Wolf 1573552110 php 1268 收藏

简介 php如何将数字转换成汉字


public function conversion(){
   $num = '18978123';
   echo "数字为:".$num;
   echo "<br>";
   echo '普通:',$this->number2chinese($num,false),'';
   echo "<br>";
   echo '金额(简体):',$this->number2chinese($num,true),'';
   echo "<br>";
   echo '金额(繁体):',$this->number2chinese($num,true,false),'';
   
   die;
}



public function number2chinese($num,$mode = true,$sim = true){
   if(!is_numeric($num)) return '含有非数字非小数点字符!';
   $char    = $sim ? array('零','一','二','三','四','五','六','七','八','九')
       : array('零','壹','贰','叁','肆','伍','陆','柒','捌','玖');
   $unit    = $sim ? array('','十','百','千','','万','亿','兆')
       : array('','拾','佰','仟','','萬','億','兆');
   $retval  = $mode ? '元':'点';
   //小数部分
   if(strpos($num, '.')){
       list($num,$dec) = explode('.', $num);
       $dec = strval(round($dec,2));
       if($mode){
           $retval .= "{$char[$dec['0']]}{$char[$dec['1']]}分";
       }else{
           for($i = 0,$c = strlen($dec);$i < $c;$i++) {
               $retval .= $char[$dec[$i]];
           }
       }
   }
   //整数部分
   $str = $mode ? strrev(intval($num)) : strrev($num);
   for($i = 0,$c = strlen($str);$i < $c;$i++) {
       $out[$i] = $char[$str[$i]];
       if($mode){
           $out[$i] .= $str[$i] != '0'? $unit[$i%4] : '';
           if($i>1 and $str[$i]+$str[$i-1] == 0){
               $out[$i] = '';
           }
           if($i%4 == 0){
               $out[$i] .= $unit[4+floor($i/4)];
           }
       }
   }
   $retval = join('',array_reverse($out)) . $retval;
   return $retval;
}




文章评论

    点击加载更多评论

我的名片

网名:Hello World

职业:PHP开发

现居:福建省-福州市

Email:565554856@qq.com

  • 图片信息

站点信息

  • 建站时间:2019-04-20
  • 文章总计:69条
  • 笔记总计:4条
  • 文章评论:0条
  • 笔记评论:0条
  • 当前访问IP:3.144.127.94