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 相关文章推荐
linux php mysql数据库备份实现代码
Mar 10 PHP
apache2.2.4+mysql5.0.77+php5.2.8安装精简
Apr 29 PHP
php Smarty date_format [格式化时间日期]
Mar 15 PHP
利用PHP生成静态HTML文档的原理
Oct 29 PHP
php单例模式示例分享
Feb 12 PHP
php中使用base HTTP验证的方法
Apr 20 PHP
phpMyAdmin安装并配置允许空密码登录
Jul 04 PHP
php将html转成wml的WAP标记语言实例
Jul 08 PHP
jQuery+php简单实现全选删除的方法
Nov 28 PHP
php求数组全排列,元素所有组合的方法总结
Mar 14 PHP
浅谈Yii乐观锁的使用及原理
Jul 25 PHP
php用wangeditor3实现图片上传功能
Aug 22 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程序中的常见漏洞进行攻击(下)
2006/10/09 PHP
php构造函数的继承方法
2015/02/09 PHP
PHP脚本监控Nginx 502错误并自动重启php-fpm
2015/05/13 PHP
PHP购物车类Cart.class.php定义与用法示例
2016/07/20 PHP
JavaScript实现删除电脑的关机键
2016/07/26 PHP
phpinfo()中Loaded Configuration File(none)的解决方法
2017/01/16 PHP
基于swoole实现多人聊天室
2018/06/14 PHP
PDO::rollBack讲解
2019/01/29 PHP
jQuery实现防止提交按钮被双击的方法
2015/03/24 Javascript
js判断图片加载完成后获取图片实际宽高的方法
2016/02/25 Javascript
javascript实现滚动效果的数字时钟实例
2016/07/21 Javascript
Node.js中常规的文件操作总结
2016/10/13 Javascript
HTML Table 空白单元格补全的简单实现
2016/10/13 Javascript
vue-cli常用设置总结
2018/02/24 Javascript
浅谈vue 锚点指令v-anchor的使用
2019/11/13 Javascript
微信小程序如何实现精确的日期时间选择器
2020/01/21 Javascript
使用 Opentype.js 生成字体子集的实例代码详解
2020/05/25 Javascript
谈谈node.js中的模块系统
2020/09/01 Javascript
Vue仿Bibibili首页的问题
2021/01/21 Vue.js
[08:06]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Elephant 选手采访
2021/03/11 DOTA
python备份文件以及mysql数据库的脚本代码
2013/06/10 Python
python使用xauth方式登录饭否网然后发消息
2014/04/11 Python
python 定义给定初值或长度的list方法
2018/06/23 Python
CentOS下Python3的安装及创建虚拟环境的方法
2018/11/28 Python
Python控制键盘鼠标pynput的详细用法
2019/01/28 Python
python 修改本地网络配置的方法
2019/08/14 Python
Python super()函数使用及多重继承
2020/05/06 Python
CSS3让登陆面板3D旋转起来
2016/05/03 HTML / CSS
HTML5实现WebSocket协议原理浅析
2014/07/07 HTML / CSS
详解Canvas 跨域脱坑实践
2018/11/07 HTML / CSS
Timberland澳大利亚官网:全球领先的户外品牌
2019/12/10 全球购物
什么是Connection-oriented Protocol/Connectionless Protocol面向连接的协议/无连接协议
2012/09/06 面试题
农村文化活动总结
2014/08/28 职场文书
社会实践单位意见
2015/06/05 职场文书
孟佩杰观后感
2015/06/17 职场文书
Spring中的使用@Async异步调用方法
2021/11/01 Java/Android