| 
					阅读:2505回复:0
				 PHP中文大写数字转成数字的方法
					在php中中文大写数字转成数字代码,实例函数代码如下: //中文大写数字转阿拉伯数字 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=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);
}
echo chtonum('一十二亿七十一万五十一'); | |
 
							
 
				