加入收藏 | 设为首页 | 会员中心 | 我要投稿 荆门站长网 (https://www.0724zz.cn/)- 图像技术、建站、AI硬件、智能营销、数据搜素!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP 中文大写数字 转成 数字代码

发布时间:2022-07-28 09:35:36 所属栏目:PHP教程 来源:互联网
导读:php 中文大写数字转成数字代码,实例函数代码如下: echo pre; echo test(一十二亿七十一万五十一); /* create by piaofen date: 2011-03-31 function: 中文大写数字转阿拉伯数字 */ function chtonum($str=) { $unit = array(亿=100000000,万=10000,千=1000,
  php 中文大写数字转成数字代码,实例函数代码如下:
 
  echo "<pre>";
  echo test('一十二亿七十一万五十一');
  /*
  create by piaofen  
  date: 2011-03-31
  function: 中文大写数字转阿拉伯数字
  */
  function chtonum($str='')
  {
  $unit = array('亿'=>100000000,'万'=>10000,'千'=>1000,'仟'=>1000,'百'=>100,'十'=>10);
  $num = array('一'=>1,'二'=>2,'三'=>3,'四'=>4,'五'=>5,'六'=>6,'七'=>7,'八'=>8,'九'=>9);
  $str = str_replace(array_keys($num),$num,$str);
  $result = array();
  $number = '';
  preg_match_all('/[0-9]千[0-9]百[0-9]十[0-9]|[0-9]百[0-9]十[0-9]|[0-9]十[0-9]|[0-9]/ism',$str,$pnum);
  foreach($pnum[0] as $val){
    $tmp = '';
    for($i=0;$i<mb_strlen($val,'utf-8');$i++){
     $s = mb_substr($val,$i,1,'utf-8');
     if(!is_numeric($s)){
      $k = $unit[$s];
      if(strlen($tmp)>=strlen($k)){
       preg_match('/([0-9]*)([0-9]{'.(strlen($k)-1).'})([0-9])/ism',$tmp,$n);
       $tmp = ($n[1]+$n[3]).$n[2];
      }else{
       $tmp = $tmp * $k;
      }
     }else if($i==(mb_strlen($val,'utf-8')-1)){
      $tmp += $s;
     }else{
      $tmp .= $s;
     }
    }
    $nnum[] = $tmp;
  }
  $result = str_replace(array_keys($unit),';',str_replace($pnum[0],$nnum,$str));
  foreach(explode(';',$result) as $val){
    $number .= sprintf('%04d',$val);
  }
  return sprintf('%2u',$number);
  } 

(编辑:荆门站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读