当前位置:首页 > 技术文档 > 正文内容

PHP数字转换中文汉字

admin11年前 (2015-11-17)技术文档1642
function number2Chinese($num, $m = 1) {
switch($m) {
case 0:
$CNum = array(
array('零','壹','贰','叁','肆','伍','陆','柒','捌','玖'),
array('','拾','佰','仟'),
array('','萬','億','萬億')
);
break;
default:
$CNum = array(
array('零','一','二','三','四','五','六','七','八','九'),
array('','十','百','千'),
array('','万','亿','万亿')
);
break;
}
// $cNum = array('零','一','二','三','四','五','六','七','八','九');
 
if (is_integer($num)) {
$int = (string)$num;
} else if (is_numeric($num)) {
$num = explode('.', (string)floatval($num));
$int = $num[0];
$fl  = isset($num[1]) ? $num[1] : FALSE;
}
// 长度
$len = strlen($int);
// 中文
$chinese = array();
 
// 反转的数字
$str = strrev($int);
for($i = 0; $i<$len; $i+=4 ) {
$s = array(0=>$str[$i], 1=>$str[$i+1], 2=>$str[$i+2], 3=>$str[$i+3]);
$j = '';
// 千位
if ($s[3] !== '') {
$s[3] = (int) $s[3];
if ($s[3] !== 0) {
$j .= $CNum[0][$s[3]].$CNum[1][3];
} else {
if ($s[2] != 0 || $s[1] != 0 || $s[0]!=0) {
$j .= $CNum[0][0];
}
}
}
// 百位
if ($s[2] !== '') {
$s[2] = (int) $s[2];
if ($s[2] !== 0) {
$j .= $CNum[0][$s[2]].$CNum[1][2];
} else {
if ($s[3]!=0 && ($s[1] != 0 || $s[0]!=0) ) {
$j .= $CNum[0][0];
}
}
}
// 十位
if ($s[1] !== '') {
$s[1] = (int) $s[1];
if ($s[1] !== 0) {
$j .= $CNum[0][$s[1]].$CNum[1][1];
} else {
if ($s[0]!=0 && $s[2] != 0) {
$j .= $CNum[0][$s[1]];
}
}
}
// 个位
if ($s[0] !== '') {
$s[0] = (int) $s[0];
if ($s[0] !== 0) {
$j .= $CNum[0][$s[0]].$CNum[1][0];
} else {
// $j .= $CNum[0][0];
}
}
$j.=$CNum[2][$i/4];
array_unshift($chinese, $j);
}
$chs = implode('', $chinese);
if ($fl) {
$chs .= '点';
for($i=0,$j=strlen($fl); $i<$j; $i++) {
$t = (int)$fl[$i];
$chs.= $str[0][$t];
}
}
return $chs;
}


分享到:

扫描二维码推送至手机访问。

版权声明:本文由云河空间发布,如需转载请注明出处。

本文链接:https://yuyunhe.cn/index.php/post/119.html

分享给朋友:

“PHP数字转换中文汉字” 的相关文章

php检查用户名是否符合规定

<?php   /**  * 检查用户名是否符合规定 (两个字符以上,只能有中文,字母,数字,下划线的)  *  * @param STRING $username 要检查的用户名...

dz第三方模块添加方法

dz第三方模块添加方法

使用dz做网站的朋友有时候会用到第三方模块专题,这就会遇到一个模块通信的问题,可是弄了半天就是“数据无法识别,请返回”, 也够雷人的,ok,这你就给大家分享下本人的一点经验,以供大家参考!dz第三方模块添加方法...

ThinkPHP分页的实现

分页类需要和查询相结合,我们可以使用ThinkPHP自带的limit方法或者page方法,目的就是为了获取当前分页的数据(也有先获取完整数据然后前端分页显示的方法,不在本文描述内容中,也不建议)。使用limit方法或者page方法是和数据库类型无关的。我们首先在数据库里面创建一个think_data...

phpcms v9更换模板的具体操作方法

phpcms v9更换模板的具体操作方法

这篇文章主要介绍了phpcms v9更换模板的具体操作方法,需要的朋友可以参考下分享一下Phpcms V9更换模板的具体操作方法先分享下大概的步骤:1、上传模版文件到服务器;2、在站点管理 里边【模板风格配置】选择新模板;3、设置不同模型对应模板;4、修改现有的栏目,匹配新模板;5、更新栏目缓存、系...

wamp虚拟主机配置

1、首先打开apache的配置文件httpd.conf,并去掉#Include conf/extra/httpd-vhosts.conf前面的#,启用虚拟主机功能2、先把localhost配置好,免得以后访问localhost出现问题,我的wamp项目根目录是D:\wamp\www。将下面信息添加到...

PHP开发之THINKPHP多表联合查询操作的三种方法

THINKPHP 中关联查询(多表查询)可以使用 table() 方法或和join方法,请看示例: 联合查询         1、原生查询    &...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。