<?phpheader("content-type:text/html;charset=utf-8");function numToRmb($num){ ?$rmbNum = [‘零‘,‘壹‘,‘贰‘,‘叁‘,‘肆‘,‘伍‘,‘陆‘,‘柒‘,‘捌‘,‘玖‘]; ?$rmbUnit = [‘分‘,‘角‘,‘元‘,‘拾‘,‘佰‘,‘仟‘,‘万‘,‘拾‘,‘佰‘,‘仟‘,‘亿‘,‘拾‘,‘佰‘,‘仟‘,‘万‘,‘拾‘,‘佰‘,‘仟‘]; ?//数字预处理 ?if($num == ‘‘ || $num == 0){ ???return ‘请输入一个大于0的金额,谢谢!‘; ?}else { ???$num = number_format($num, 2, ‘.‘, ‘‘)*100; ?} ?if (strlen(number_format($num, 0, ‘‘, ‘‘))>18) { ???return ‘输入的金额不得超过千万亿!‘; ?} ?//开始数字转换人民币大写 ?$out1 = 0; ?$numRmb = ‘‘; ?$unit = ‘‘; ?$rmb = ‘‘; ?for ($out1 = 0 ; $out1 < strlen(number_format($num, 0, ‘‘, ‘‘)) ; $out1++) { ???$numRmb = $rmbNum[substr(number_format($num, 0, ‘‘, ‘‘), $out1, 1)]; ???$unit = $rmbUnit[strlen(number_format($num, 0, ‘‘, ‘‘))-$out1-1]; ???$rmb = $rmb.$numRmb.$unit; ?} ?// 将大写人民币中的零进行调整 ?$rmbStrlen = strlen($rmb); ?for ($out2=0; $out2 < $rmbStrlen; $out2=$out2+3) { ???$tempRmb = substr($rmb, $out2, 6); ???if ($tempRmb==‘零元‘||$tempRmb==‘零万‘||$tempRmb==‘零亿‘) { ?????$left = substr($rmb, 0, $out2); ?????$right = substr($rmb, $out2+3); ?????$rmb = $left.$right; ?????$out2 = $out2 - 3; ?????$rmbStrlen = $rmbStrlen - 3; ???}elseif ($tempRmb==‘零拾‘||$tempRmb==‘零佰‘||$tempRmb==‘零仟‘) { ?????$left = substr($rmb, 0, $out2+3); ?????$right = substr($rmb, $out2+6); ?????$rmb = $left.$right; ?????$out2 = $out2 - 3; ?????$rmbStrlen = $rmbStrlen - 3; ???}elseif ($tempRmb==‘零分‘||$tempRmb==‘零角‘) { ?????$left = substr($rmb, 0, $out2); ?????$right = substr($rmb, $out2+6); ?????$rmb = $left.$right; ?????$out2 = $out2 - 6; ?????$rmbStrlen = $rmbStrlen - 6; ???} ???if ($tempRmb==‘零零‘) { ?????$left = substr($rmb, 0, $out2); ?????$right = substr($rmb, $out2+3); ?????$rmb = $left.$right; ?????$out2 = $out2 - 3; ?????$rmbStrlen = $rmbStrlen - 3; ???} ???if(substr($rmb,strlen($rmb)-3)==‘元‘) { ?????$rmb = $rmb.‘整‘; ???} ?} ?return $rmb;}echo numToRmb($_POST[‘num‘]); ?>
PHP 数字转大写
原文地址:https://www.cnblogs.com/lglblogadd/p/8434629.html