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 IP及IP段进行访问限制的代码
Dec 17 PHP
PHP 文件系统详解
Sep 13 PHP
PHP以指定字段为索引返回数据库所取的数据数组
Jun 30 PHP
PHP 验证码不显示只有一个小红叉的解决方法
Sep 30 PHP
PHP安装threads多线程扩展基础教程
Nov 17 PHP
Yii使用技巧大汇总
Dec 29 PHP
简单谈谈PHP中strlen 函数
Feb 27 PHP
PHP登录(ajax提交数据和后台校验)实例分享
Dec 29 PHP
PHP中file_put_contents追加和换行的实现方法
Apr 01 PHP
Laravel 5.5基于内置的Auth模块实现前后台登陆详解
Dec 21 PHP
php字符串函数 str类常见用法示例
May 15 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+mysql一个名片库程序
2006/10/09 PHP
php你的验证码安全码?
2007/01/02 PHP
php 正则匹配函数体
2009/08/25 PHP
ThinkPHP采用模块和操作分析
2011/04/18 PHP
PHP封装的一个支持HTML、JS、PHP重定向的多功能跳转函数
2014/06/19 PHP
使用PHP实现阻止用户上传成人照片或者裸照
2014/12/25 PHP
PHP模板引擎smarty详细介绍
2015/05/26 PHP
8个PHP数组面试题
2015/06/23 PHP
动态调用CSS文件的JS代码
2010/07/29 Javascript
JavaScript常用全局属性与方法记录积累
2013/07/03 Javascript
document.forms用法示例介绍
2014/06/26 Javascript
javascript拖拽效果延伸学习
2016/04/04 Javascript
浅谈JS运算符&amp;&amp;和|| 及其优先级
2016/08/10 Javascript
Vue.js项目部署到服务器的详细步骤
2017/07/17 Javascript
JS库particles.js创建超炫背景粒子插件(附源码下载)
2017/09/13 Javascript
jquery自定义显示消息数量
2017/12/19 jQuery
使用webpack/gulp构建TypeScript项目的方法示例
2019/12/18 Javascript
token 机制和实现方式
2020/12/15 Javascript
PyQt 线程类 QThread使用详解
2017/07/16 Python
对Python 文件夹遍历和文件查找的实例讲解
2018/04/26 Python
Django中使用第三方登录的示例代码
2018/08/20 Python
Python 运行.py文件和交互式运行代码的区别详解
2019/07/02 Python
详解Python self 参数
2019/08/30 Python
Python如何实现邮件功能
2020/05/27 Python
html5本地存储 localStorage操作使用详解
2016/09/20 HTML / CSS
Canvas实现放大镜效果完整案例分析(附代码)
2020/11/26 HTML / CSS
Html5基于canvas实现电子签名并生成PDF文档
2020/12/07 HTML / CSS
美国轻奢时尚购物网站:REVOLVE(支持中文)
2020/07/18 全球购物
C/C++有关内存的思考题
2015/12/04 面试题
中软国际Java程序员机试题
2012/08/19 面试题
优秀教师主要事迹
2014/02/01 职场文书
教师优秀党员事迹材料
2014/08/14 职场文书
赔偿协议书范本
2014/09/12 职场文书
护理专业毕业自我鉴定
2019/08/12 职场文书
MySQL 发生同步延迟时Seconds_Behind_Master还为0的原因
2021/06/21 MySQL
在MySQL中你成功的避开了所有索引
2022/04/20 MySQL