php数字转汉字代码(算法)


Posted in PHP onOctober 08, 2011
//将数字转换为汉字,比如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");
PHP 相关文章推荐
从C/C++迁移到PHP——判断字符类型的函数
Oct 09 PHP
php 高性能书写
Dec 11 PHP
有关php运算符的知识大全
Nov 03 PHP
PHP5中Cookie与 Session使用详解
Apr 30 PHP
php+mysql删除指定编号员工信息的方法
Jan 14 PHP
php实现向javascript传递数组的方法
Jul 27 PHP
PHP中strnatcmp()函数“自然排序算法”进行字符串比较用法分析(对比strcmp函数)
Jan 07 PHP
对比PHP对MySQL的缓冲查询和无缓冲查询
Jul 01 PHP
Zend Framework数据库操作技巧总结
Feb 18 PHP
为何说PHP引用是个坑,要慎用
Apr 02 PHP
详解Laravel5.6 Passport实现Api接口认证
Jul 27 PHP
PHP生成随机字符串实例代码(字母+数字)
Sep 11 PHP
PHP判断远程url是否有效的几种方法小结
Oct 08 #PHP
php下利用curl判断远程文件是否存在的实现代码
Oct 08 #PHP
PHP下判断网址是否有效的代码
Oct 08 #PHP
Admin generator, filters and I18n
Oct 06 #PHP
如何在symfony中导出为CSV文件中的数据
Oct 06 #PHP
php中时间轴开发(刚刚、5分钟前、昨天10:23等)
Oct 03 #PHP
linux iconv方法的使用
Oct 01 #PHP
You might like
PHP调用三种数据库的方法(3)
2006/10/09 PHP
mysql总结之explain
2012/02/27 PHP
PHP引用符&amp;的用法详细解析
2013/08/22 PHP
PHP针对JSON操作实例分析
2015/01/12 PHP
有关PHP 中 config.m4 的探索
2020/08/26 PHP
jquery方法+js一般方法+js面向对象方法实现拖拽效果
2012/08/30 Javascript
jquery如何获取复选框的值
2013/12/12 Javascript
javascript实现带节日和农历的日历特效
2015/02/01 Javascript
DOM操作一些常用的属性汇总
2015/03/13 Javascript
微信内置浏览器私有接口WeixinJSBridge介绍
2015/05/25 Javascript
Js+php实现异步拖拽上传文件
2015/06/23 Javascript
JavaScript学习小结(7)之JS RegExp
2015/11/29 Javascript
AngularJS 使用$sce控制代码安全检查
2016/01/05 Javascript
javascript实现全角转半角的方法
2016/01/23 Javascript
JS实现图片高斯模糊切换效果的焦点图实例
2017/01/21 Javascript
node.js支持多用户web终端实现及安全方案
2017/11/29 Javascript
动态加载权限管理模块中的Vue组件
2018/01/16 Javascript
JS实现动态添加外部js、css到head标签的方法
2019/06/05 Javascript
jQuery实现飞机大战小游戏
2020/07/05 jQuery
在vue中实现清除echarts上次保留的数据(亲测有效)
2020/09/09 Javascript
Python 获得13位unix时间戳的方法
2017/10/20 Python
使用keras实现densenet和Xception的模型融合
2020/05/23 Python
matplotlib之属性组合包(cycler)的使用
2021/02/24 Python
HTML5之语义标签介绍
2016/07/07 HTML / CSS
阿迪达斯丹麦官网:adidas丹麦
2016/10/01 全球购物
泰国网上购物:Shopee泰国
2018/09/14 全球购物
德国自行车商店:Tretwerk
2019/06/21 全球购物
德国净水壶和滤芯品牌:波尔德PearlCo(家用净水器)
2020/04/29 全球购物
优秀食品类广告词
2014/03/19 职场文书
公司请假条格式
2014/04/11 职场文书
班委竞选演讲稿
2014/04/28 职场文书
店长岗位职责
2015/02/11 职场文书
经费申请报告
2015/05/15 职场文书
重温经典:乔布斯在斯坦福大学的毕业演讲(双语)
2019/08/26 职场文书
导游词之台湾阿里山
2019/10/23 职场文书
JavaScript严格模式不支持八进制的问题讲解
2021/11/07 Javascript