用户名:
密 码: 记住
您当前的位置:首页 > 网络编程 > php教程

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

时间:2015-01-23  来源:西部数据  作者:西部数据

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); 
来顶一下
返回首页
返回首页
推荐资讯
WiFi太不安全:7岁女孩11分钟内入侵公共网络 WiFi太不安全:7岁女孩11分钟内入侵近期刚刚发布研究说WiFi网络能获得人们手机里多少私人信息,
不服跑个分?人工智能也出现“刷分”乱象 不服跑个分?人工智能也出现“刷分2014年,人工智能领域突然爆发,成为了科研和科技创业的热门
相关文章
栏目更新
栏目热门