當前位置:編程學習大全網 - 源碼下載 - 求壹個 php 數字小寫轉為大寫的函數(在線等,謝謝)

求壹個 php 數字小寫轉為大寫的函數(在線等,謝謝)

PHP把阿拉伯數字轉換成中文,需要定義壹個轉換的算法:

算法實例:

<?php

/將數字轉換為漢字,比如1210轉換為壹千二百壹十?

$num?=?"842105580";//九位數?

function?del0($num)?//去掉數字段前面的0?

{?

return?"".intval($num);?

}?

function?n2c($x)?//單個數字變漢字?

{?

$arr_n?=?array("零","壹","二","三","四","五","六","七","八","九","十");?

return?$arr_n[$x];?

}?

function?num_r($abcd)?//讀取數值(4位)?

{?

$arr=?array();?

$str?=?"";?//讀取後的漢字數值?

$flag?=?0;?//該位是否為零?

$flag_end?=?1;?//是否以“零”結尾?

$size_r?=?strlen($abcd);?

for($i=0;?$i<$size_r;?$i++)?

{?

$arr[$i]?=?$abcd{$i};?

}?

$arrlen?=?count($arr);?

for($j=0;?$j<$arrlen;?$j++)?

{?

$ch?=?n2c($arr[$arrlen-1-$j]);?//從後向前轉漢字?

echo?$ch;?

echo?"";?

if($ch?==?"零"?&&?$flag?==?0){?//如果是第壹個零?

$flag?=?1;?//該位為零?

$str?=?$ch.$str;?//加入漢字數值字符串?

continue;?

}elseif($ch?==?"零"){?//如果不是第壹個零了?

continue;?

}?

$flag?=?0;?//該位不是零?

switch($j)?{?

case?0:?$str?=?$ch;?$flag_end?=?0;?break;?//第壹位(末尾),沒有以“零”結尾?

case?1:?$str?=?$ch."十".$str;?break;?//第二位?

case?2:?$str?=?$ch."百".$str;?break;?//第三位?

case?3:?$str?=?$ch."千".$str;?break;?//第四位?

}?

}?

if($flag_end?==?1)?//如果以“零”結尾?

{?

mb_internal_encoding("UTF-8");?

$str?=?mb_substr($str,?0,?mb_strlen($str)-1);?//把“零”去掉?

}?

return?$str;?

}?

function?num2ch($num)?//整體讀取轉換?

{?

$num_real?=?del0($num);//去掉前面的“0”?

$numlen?=?strlen($num_real);?

echo?"numlen=".$numlen."";?

if($numlen?>=?9)//如果滿九位,讀取“億”位?

{?

$y=substr($num_real,?-9,?1);?

//echo?$y;?

$wsbq?=?substr($num_real,?-8,?4);?

$gsbq?=?substr($num_real,?-4);?

$a?=?num_r(del0($gsbq));?

$b?=?num_r(del0($wsbq))."萬";?

$c?=?num_r(del0($y))."億";?

}elseif($numlen?<=?8?&&?$numlen?>=?5)?//如果大於等於“萬”?

{?

$wsbq?=?substr($num_real,?0,?$numlen-4);?

$gsbq?=?substr($num_real,?-4);?

$a?=?num_r(del0($gsbq));?

$b?=?num_r(del0($wsbq))."萬";?

$c="";?

}elseif($numlen?<=?4)?//如果小於等於“千”?

{?

$gsbq?=?substr(?$num_real,?-$numlen);?

$a?=?num_r(del0($gsbq));?

$b="";?

$c="";?

}?

$ch_num?=?$c.$b.$a;?

return?$ch_num;?

}?

echo?$num."";?//數字?

echo?num2ch($num);?//漢字?

echo?"";?

echo?num2ch("1240");?

>

  • 上一篇:c# winform 用listview做導航界面,控件上下移動後 順序不對?
  • 下一篇:想學點東西,成都華信智原web前端開發培訓班怎麽樣呢?
  • copyright 2024編程學習大全網