PHP人民币金额转大写实例代码

yipeiwu_com6年前PHP代码库

PHP人民币金额转大写,其实质就是数字转换成中文大写,测试了一下,非常有趣,随便输个数字,就可以将其大写打印出来,初学的朋友们试一下吧

//PHP人民币金额转大写
class Ext_Num2Cny{ 
 static $basical = array(0=>"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"); 
 static $advanced=array(1=>"拾","佰","仟"); 
 
 public static function ParseNumber($number){ 
  $number=trim($number); 
  if ($number>999999999999) return "数字太大,无法处理。抱歉!"; 
  if ($number==0) return "零"; 
  if(strpos($number,'.')){ 
   $number=round($number,2); 
   $data=explode(".",$number); 
   $data[0]=self::int($data[0]); 
   $data[1]=self::dec($data[1]); 
   return $data[0].$data[1]; 
  }else{ 
   return self::int($number).'整'; 
  } 
 } 
 
 public static function int($number){ 
  $arr=array_reverse(str_split($number)); 
  $data=''; 
  $zero=false; 
  $zero_num=0; 
  foreach ($arr as $k=>$v){ 
   $_chinese=''; 
   $zero=($v==0)?true:false; 
   $x=$k%4; 
   if($x && $zero && $zero_num>1)continue; 
   switch ($x){ 
    case 0: 
     if($zero){ 
      $zero_num=0; 
     }else{ 
      $_chinese=self::$basical[$v]; 
      $zero_num=1; 
     } 
     if($k==8){ 
      $_chinese.='亿'; 
     }elseif($k==4){ 
      $_chinese.='万'; 
     } 
     break;  
    default: 
     if($zero){ 
      if($zero_num==1){ 
       $_chinese=self::$basical[$v]; 
       $zero_num++; 
      } 
     }else{ 
      $_chinese=self::$basical[$v]; 
      $_chinese.=self::$advanced[$x]; 
     } 
   } 
   $data=$_chinese.$data; 
  } 
  return $data.'元'; 
 } 
  
 public static function dec($number){ 
  if(strlen($number)<2) $number.='0'; 
  $arr=array_reverse(str_split($number)); 
  $data=''; 
  $zero_num=false; 
  foreach ($arr as $k=>$v){ 
   $zero=($v==0)?true:false; 
   $_chinese=''; 
   if($k==0){ 
    if(!$zero){ 
     $_chinese=self::$basical[$v]; 
     $_chinese.='分'; 
     $zero_num=true; 
    } 
   }else{ 
    if($zero){ 
     if($zero_num){ 
      $_chinese=self::$basical[$v]; 
     } 
    }else{ 
     $_chinese=self::$basical[$v]; 
     $_chinese.='角'; 
    } 
   } 
   $data=$_chinese.$data; 
  } 
  return $data; 
 } 
} 
//使用方法
$nun = new Ext_Num2Cny(); 
echo Ext_Num2Cny::ParseNumber(1234567.5); 

结果:壹佰贰拾叁万肆仟伍佰陆拾柒元伍角

希望本文对大家学习php编程有所帮助,

相关文章

php中删除数组的第一个元素和最后一个元素的函数

对于一个php数组,该如何删除该数组的第一个元素或者最后一个元素呢?其实这两个过程都可以通过php自带的函数 array_pop 和 array_shift 来完成,下面就具体介绍一下如...

Yii使用smsto短信接口的函数demo示例

本文实例讲述了Yii使用smsto短信接口的函数。分享给大家供大家参考,具体如下: public function smsto($telphone,$message) { /...

PHP判断两个给定日期是否在同一周的方法

本文实例讲述了PHP判断两个给定日期是否在同一周的方法。分享给大家供大家参考,具体如下: /** * 判断两日期是不是同一周 * 星期是按周日到周六 */ function getS...

php计算整个目录大小的方法

本文实例讲述了php计算整个目录大小的方法。分享给大家供大家参考。具体实现方法如下: /** * Calculate the full size of a directory *...

php模拟用户自动在qq空间发表文章的方法

本文实例讲述了php模拟用户自动在qq空间发表文章的方法。分享给大家供大家参考。具体分析如下: 我们这里是一个简单的利用php来模拟登录后再到QQ空间发送文章的一个简单的程序,有需要的朋...