网站地图    收藏   

主页 > php专栏 > php函数大全 >

PHP 中文大写数字 转成 数字代码 - php函数

来源:自学PHP网    时间:2014-11-25 00:26 作者: 阅读:

[导读] php 中文大写数字转成数字代码,实例函数代码如下:echopre;echotest( 39;一十二亿七十一万五十一 39;); *createbypiaofendate:2011-03-31function:中文大写数字转阿拉伯数字* functionchtonu...

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

php 中文大写数字转成数字代码,实例函数代码如下:

  1. echo "<pre>"
  2. echo test('一十二亿七十一万五十一'); 
  3. /* 
  4. create by piaofen  
  5. date: 2011-03-31 
  6. function: 中文大写数字转阿拉伯数字 
  7. */ 
  8. function chtonum($str=''
  9. $unit = array('亿'=>100000000,'万'=>10000,'千'=>1000,'仟'=>1000,'百'=>100,'十'=>10); 
  10. $num = array('一'=>1,'二'=>2,'三'=>3,'四'=>4,'五'=>5,'六'=>6,'七'=>7,'八'=>8,'九'=>9); 
  11. $str = str_replace(array_keys($num),$num,$str); 
  12. $result = array(); 
  13. $number = ''
  14. 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); 
  15. foreach($pnum[0] as $val){ 
  16.   $tmp = ''
  17.   for($i=0;$i<mb_strlen($val,'utf-8');$i++){ 
  18.    $s = mb_substr($val,$i,1,'utf-8'); 
  19.    if(!is_numeric($s)){ 
  20.     $k = $unit[$s]; 
  21.     if(strlen($tmp)>=strlen($k)){ 
  22.      preg_match('/([0-9]*)([0-9]{'.(strlen($k)-1).'})([0-9])/ism',$tmp,$n); 
  23.      $tmp = ($n[1]+$n[3]).$n[2]; 
  24.     }else
  25.      $tmp = $tmp * $k
  26.     } 
  27.    }else if($i==(mb_strlen($val,'utf-8')-1)){ 
  28.     $tmp += $s
  29.    }else
  30.     $tmp .= $s
  31.    } 
  32.   } 
  33.   $nnum[] = $tmp
  34. $result = str_replace(array_keys($unit),';',str_replace($pnum[0],$nnum,$str)); 
  35. foreach(explode(';',$resultas $val){ 
  36.   $number .= sprintf('%04d',$val); 
  37. return sprintf('%2u',$number); 

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论