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 相关文章推荐
GD输出汉字的函数的分析
Oct 09 PHP
一步一步学习PHP(7) php 字符串相关应用
Mar 05 PHP
小文件php+SQLite存储方案
Sep 04 PHP
PHP文件注释标记及规范小结
Apr 01 PHP
查找mysql字段中固定字符串并替换的几个方法
Sep 23 PHP
Javascript与PHP验证用户输入URL地址是否正确
Oct 09 PHP
一个PHP实现的轻量级简单爬虫
Jul 08 PHP
在WordPress中实现评论头像的自定义默认和延迟加载
Nov 24 PHP
PHPStorm+XDebug进行调试图文教程
Jun 13 PHP
Yii2汉字转拼音类的实例代码
Apr 18 PHP
用Laravel Sms实现laravel短信验证码的发送的实现
Nov 29 PHP
thinkphp3.2框架中where条件查询用法总结
Aug 13 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
oracle资料库函式库
2006/10/09 PHP
PHP时间戳 strtotime()使用方法和技巧
2013/10/29 PHP
laravel自定义分页效果
2017/07/23 PHP
原生JS实现Ajax通过GET方式与PHP进行交互操作示例
2018/05/12 PHP
PHP下载文件函数与用法示例
2019/09/27 PHP
javascript实现动态增加删除表格行(兼容IE/FF)
2007/04/02 Javascript
不安全的常用的js写法
2009/09/15 Javascript
解决jquery的datepicker的本地化以及Today问题
2012/05/23 Javascript
iframe异步加载实现点击左边菜单加载右边内容实例讲解
2013/03/04 Javascript
js 中将多个逗号替换为一个逗号的代码
2014/06/07 Javascript
jQuery中的each()详细介绍(推荐)
2016/05/25 Javascript
全面解析Javascript无限添加QQ好友原理
2016/06/15 Javascript
jQuery实现的tab标签切换效果示例
2016/09/05 Javascript
一个非常好用的文字滚动的案例,鼠标悬浮可暂停[两种方案任选]
2016/12/01 Javascript
vue vuex vue-rouert后台项目——权限路由(适合初学)
2017/12/29 Javascript
浅谈Vue2.0中v-for迭代语法的变化(key、index)
2018/03/06 Javascript
解决Vue中mounted钩子函数获取节点高度出错问题
2018/05/18 Javascript
JavaScript设计模式之构造器模式(生成器模式)定义与用法实例分析
2018/07/26 Javascript
react native 仿微信聊天室实例代码
2019/09/17 Javascript
[02:04]2016国际邀请赛中国区预选赛VG.R晋级之路
2016/07/01 DOTA
Python实现XML文件解析的示例代码
2018/02/05 Python
实例详解Python模块decimal
2019/06/26 Python
Python字符编码转码之GBK,UTF8互转
2020/02/09 Python
TFRecord文件查看包含的所有Features代码
2020/02/17 Python
将pymysql获取到的数据类型是tuple转化为pandas方式
2020/05/15 Python
python 负数取模运算实例
2020/06/03 Python
详解HTML5新增标签
2017/11/27 HTML / CSS
快速创建 HTML5 Canvas 电信网络拓扑图的示例代码
2018/03/21 HTML / CSS
EJB发布WEB服务一般步骤
2012/10/31 面试题
智能电子应届生求职信
2013/11/10 职场文书
幼儿园老师辞职信
2014/01/20 职场文书
2014基层党员干部学习全国两会心得体会
2014/03/17 职场文书
团日活动总结模板
2014/06/25 职场文书
森林防火宣传标语
2014/06/27 职场文书
单方投资意向书
2015/05/11 职场文书
初中军训感言
2015/08/01 职场文书