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 相关文章推荐
文章推荐系统(二)
Oct 09 PHP
用PHP 快速生成 Flash 动画的方法
Mar 06 PHP
php mysql数据库操作类
Jun 04 PHP
php不用内置函数对数组排序的两个算法代码
Feb 08 PHP
发一个php简单的伪原创程序,配合商城采集用的
Oct 12 PHP
PHP安全配置详细说明
Sep 26 PHP
PHP容易忘记的知识点分享
Apr 30 PHP
PHP判断一个gif图片是否为动态图片的方法
Nov 19 PHP
php文件操作相关类实例
Jun 18 PHP
TP(thinkPHP)框架多层控制器和多级控制器的使用示例
Jun 13 PHP
Laravel 对某一列进行筛选然后求和sum()的例子
Oct 10 PHP
Laravel框架使用技巧之使用url()全局函数返回前一个页面的地址方法详解
Apr 06 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
虫族 Zerg 热键控制
2020/03/14 星际争霸
php fckeditor 调用的函数
2009/06/21 PHP
对淘宝URL中ID提取的PHP代码
2013/09/01 PHP
高效的表格行背景隔行变色及选定高亮的JS代码
2010/12/04 Javascript
jquery 插件学习(五)
2012/08/06 Javascript
jquery 检测元素是否存在的实例代码
2013/11/19 Javascript
限制上传文件大小和格式的jQuery插件实例
2015/01/24 Javascript
浅谈js中的闭包
2015/03/16 Javascript
Spring MVC中Ajax实现二级联动的简单实例
2016/07/06 Javascript
Web前端开发之水印、图片验证码
2016/11/27 Javascript
canvas绘制万花筒效果(代码分享)
2017/01/20 Javascript
jquery实现拖动效果(代码分享)
2017/01/25 Javascript
Bootstrap选项卡学习笔记分享
2017/02/13 Javascript
JavaScript 中 apply 、call 的详解
2017/03/21 Javascript
详解ES6中的代理模式——Proxy
2018/01/08 Javascript
JS实现网站楼层导航效果代码实例
2020/06/16 Javascript
[05:43]VG.R战队教练Mikasa专访:为目标从未停止战斗
2016/08/02 DOTA
[49:31]TFT vs Mski Supermajor小组赛C组 BO3 第一场 6.3
2018/06/04 DOTA
在Python的Flask框架中实现单元测试的教程
2015/04/20 Python
Python 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)
2018/03/19 Python
pandas的唯一值、值计数以及成员资格的示例
2018/07/25 Python
Python爬取数据保存为Json格式的代码示例
2019/04/09 Python
Python for循环及基础用法详解
2019/11/08 Python
Tensorflow中的dropout的使用方法
2020/03/13 Python
浅谈keras中的Merge层(实现层的相加、相减、相乘实例)
2020/05/23 Python
部署Django到阿里云服务器教程示例
2020/06/03 Python
基于python爬取链家二手房信息代码示例
2020/10/21 Python
纯CSS3实现圆角效果(含IE兼容解决方法)
2014/05/07 HTML / CSS
HTML5仿手机微信聊天界面
2016/03/18 HTML / CSS
CLR与IL分别是什么含义
2016/08/23 面试题
给酒店员工的表扬信
2014/01/11 职场文书
剪枝的学问教学反思
2014/02/07 职场文书
主题婚礼策划方案
2014/02/10 职场文书
学校世界艾滋病日宣传活动总结
2015/05/05 职场文书
生产实习心得体会范文
2016/01/22 职场文书
Vue组件化(ref,props, mixin,.插件)详解
2022/05/15 Vue.js