lglblogadd
<?php
header("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\']);
 ?>

 

分类:

技术点:

相关文章: