PHP价格转大写

本文阅读 1 分钟
首页 PHP笔记 正文
<?php
function currencyToChinese($data)
{
    $data&nbsp;=&nbsp;str_replace(&#39;,&#39;,&nbsp;&#39;&#39;,&nbsp;$data);
 
    if ($data == '') {
        return '';
    }
 
    $prefix = '';
    $cncap = '';
 
    if ($data < 0) {
        $prefix .= '负';
        $data&nbsp;=&nbsp;substr($data, 1, strlen($data) - 1);
    }
 
    $capnum = array("零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖");
    $capdigit = array("", "拾", "佰", "仟");
    $subdata&nbsp;=&nbsp;explode(&quot;.&quot;,&nbsp;$data);
    if (!isset($subdata[1])) {
        $subdata[1] = 0;
    }
 
    if (intval($subdata[0])&nbsp;==&nbsp;0&nbsp;&amp;&amp;&nbsp;intval($subdata[1]) == 0) {
        return $prefix . "零元整";
    }
 
    $yuan&nbsp;=&nbsp;$subdata[0];
    $j&nbsp;=&nbsp;0;&nbsp;$nonzero = 0;
    for ($i&nbsp;=&nbsp;0;&nbsp;$i < strlen($subdata[0]);&nbsp;$i++) {
        if (0 == $i) { //确定个位
            if (intval($subdata[1]) != 0) {
                if (substr($subdata[0], -1, 1) == 0) {
                    $cncap .= "元零";
                } else {
                    $cncap .= "元";
                }
            } else {
                if (intval($subdata[0]) != 0) {
                    $cncap = "元";
                }
 
            }
        }
        if (4 == $i) {
            $j = 0;
            $nonzero = 0;
            $cncap&nbsp;=&nbsp;&quot;万&quot;&nbsp;.&nbsp;$cncap;
        } //确定万位
        if (8 == $i) {
            $j = 0;
            $nonzero=0;
            $cncap=&quot;亿&quot;&nbsp;.&nbsp;$cncap;
        } //确定亿位
        $numb&nbsp;=&nbsp;substr($yuan, -1, 1); //截取尾数
        $cncap&nbsp;=&nbsp;($numb) ?
            $capnum[$numb] . $capdigit[$j] . $cncap&nbsp;:&nbsp;(($nonzero)?"零" . $cncap&nbsp;:&nbsp;$cncap);
        $nonzero&nbsp;=&nbsp;($numb) ? 1 : $nonzero;
        $yuan&nbsp;=&nbsp;substr($yuan, 0, strlen($yuan)-1); //截去尾数
        $j++;
    }
    $chiao = '';
    $cent = '';
    if (intval($subdata[1]) != 0) {
        $chiao&nbsp;=&nbsp;(substr($subdata[1], 0, 1)) ?
            $capnum[substr($subdata[1], 0, 1)] . "角" : "零";
        $cent&nbsp;=&nbsp;(substr($subdata[1], 1, 1)) ?
            $capnum[substr($subdata[1], 1, 1)] . "分" : "零分";
    }
 
    $cncap&nbsp;.=&nbsp;$chiao.$cent;
    if (substr($subdata[1], -1, 1) === '0') {
        $cncap .= "整";
    }
    $cncap&nbsp;=&nbsp;preg_replace(&quot;/(零)+/&quot;,&nbsp;&quot;\\1&quot;,&nbsp;$cncap); //合并连续“零”
 
    if (intval($subdata[0]) == 0) {
        $cncap&nbsp;=&nbsp;preg_replace(&quot;/(元零)+/&quot;,&nbsp;&quot;&quot;,&nbsp;$cncap);
        $cncap&nbsp;=&nbsp;preg_replace(&quot;/(元)+/&quot;,&nbsp;&quot;&quot;,&nbsp;$cncap);
    }
    if (intval($subdata[1])&nbsp;==&nbsp;0&nbsp;||&nbsp;substr($subdata[1], -1, 1) === '0') {
        $cncap&nbsp;=&nbsp;preg_replace(&quot;/(零分)+/&quot;,&nbsp;&quot;&quot;,&nbsp;$cncap);
    }
 
    return $prefix&nbsp;.&nbsp;$cncap;
}
?>
解压密码: detechn或detechn.com

免责声明

本站所有资源出自互联网收集整理,本站不参与制作,如果侵犯了您的合法权益,请联系本站我们会及时删除。

本站发布资源来源于互联网,可能存在水印或者引流等信息,请用户自行鉴别,做一个有主见和判断力的用户。

本站资源仅供研究、学习交流之用,若使用商业用途,请购买正版授权,否则产生的一切后果将由下载用户自行承担。

HTML5的离线储存怎么使用及工作原理?
« 上一篇 05-15
响应式后台主题UI框架(H+4.9)带完整开发文档
下一篇 » 05-29

发表评论

惪特博客
  • 文章总数:
    18087 篇
  • 评论总数:
    52244 条
  • 标签总数:
    8192 个
  • 总浏览量:
    15811448 次
  • 最后更新:
    5小时前

最多点赞

随便看看

标签TAG