<?
error_reporting(2047);#报告所有非法的错误
ob_start();
function RMB ($RMB=0,$Format='') {
/*
*/
$RMB=@preg_Replace(
array('/([, ]|¥|0$|)/','/(.){2,}/'),
array('','.'),
$RMB);
if(eregi("[^0-9.]",$RMB))return "非法金额";
if($RMB==0)return "零元整";
elseif($RMB>pow(10,12))return "金额必须小于千亿";
$re = '';
$arr1 = array('零','壹','贰','叁','肆','伍','陆','柒','捌','玖');
$arr2 = array('元','拾','佰','仟','万','拾','佰','仟','亿','拾','佰','仟');
$arr3 = array('角','分','厘','毫');
$pre1 = count($arr2); #单位精确度 precision
$pre2 = count($arr3); #小数位精确度 precision
$arr = @explode(".",$RMB);#按小数点切割金额
$len1 = @strlen($arr[0]); #整数位长度
$len2 = @strlen($arr[1]); #小数位长度
for($i=0; $i<$len1 && $i<$pre1; $i++)
{
$bit =$arr[0][$len1-$i-1]; #当前位小写金额
$cn =$arr1[$bit]; #当前位大写金额
$unit =$arr2[$i];
#当前位金额单位
#小写金额为零的情况
if($bit==0)
{
if(ereg('元|万|亿',$unit))$re=$unit.$re;
else $re=$cn.$re;
}
#小写金额非零的情况
else
{
$re=$cn.$unit.$re;
}
}
for($i=0; $i< count($arr3) && $i<$len2; $i++){
$bit =$arr[1][$i]; #当前位小写金额
$cn =$arr1[$bit]; #当前位大写金额
$unit =$arr3[$i]; #当前位金额单位
if($bit!=0) $re .=$cn.$unit;
elseif($i<2) $re .="零";
}
if($Format){#格式化小写金额
#精确位数。不小于2,不大于最大精确度的小数位数
$gage =min(max(2,$len2),$pre2);
$GLOBALS[$Format]=number_format($RMB,$gage, ".", ",");
}
$re=preg_replace(
array("/亿万/", "/(零)$/", "/(零){2,}/"),
array("亿", "",