sxlixiaoyang 发表于 2022-7-6 19:06

PHP人民币小写数字转大写

本帖最后由 sxlixiaoyang 于 2022-7-6 19:20 编辑

看到有坛友写了python的,所以就准备写个PHP的,结果百度一下就有了。……………………
echo "尴尬至极";
所以就果断复制下来,然后稍加修改。
代码如下,欢迎学习:
<?php
$data = $_GET['data'];
function china_cny($ns) {

    static $cnums = array("零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"),

    $cnyunits = array("圆", "角", "分","厘","毫"),

    $grees = array("拾", "佰", "仟", "万", "拾", "佰", "仟", "亿");

    list($ns1, $ns2) = explode(".", $ns, 4);
    $ns2 = array_filter(array($ns2,$ns2,$ns2, $ns2));

    //$ns2 = array_filter(array($ns2, $ns2));

    $ret = array_merge($ns2, array(implode("", _cny_map_unit(str_split($ns1), $grees)), ""));

    $ret = implode("", array_reverse(_cny_map_unit($ret, $cnyunits)));

    return str_replace(array_keys($cnums), $cnums, $ret);

}

function _cny_map_unit($list, $units) {
    $ul = count($units);    $xs = array();   

    foreach (array_reverse($list) as $x) {      

    $l = count($xs);      

    if ($x != "0" || !($l % 4))            

    $n = ($x == '0' ? '' : $x) . ($units[($l - 1) % $ul]);      

    else

            $n = is_numeric($xs) ? $x : '';

      array_unshift($xs, $n);

    }   
    return $xs;
}
echo $data."元</br>";
echo china_cny($data);
?>

演示地址:shuaibi.eu.org/test/1.php?data=1234.5678

甜萝 发表于 2022-7-6 19:23

迈克老狼 发表于 2022-7-6 19:10
搜狗输入法输入V 然后数字就出现了非常方便

评论很熟悉 {:301_986:}

sxlixiaoyang 发表于 2022-7-6 19:18

迈克老狼 发表于 2022-7-6 19:10
搜狗输入法输入V 然后数字就出现了非常方便

是的,很方便的,
如果批量转换,用接口文件会更方便一些{:1_918:}

迈克老狼 发表于 2022-7-6 19:10

搜狗输入法输入V 然后数字就出现了非常方便

软件我来了 发表于 2022-7-6 19:24

不错,收藏了

sxlixiaoyang 发表于 2022-7-6 19:26

paypojie 发表于 2022-7-6 19:23
评论很熟悉

哈哈哈,复制粘贴

sxlixiaoyang 发表于 2022-7-6 19:27

软件我来了 发表于 2022-7-6 19:24
不错,收藏了

{:1_893:}
感谢收藏
!!!!!

baiqpl0123 发表于 2022-7-6 19:48

批量可用,正常还是输入法里有

songing 发表于 2022-7-6 19:50

这个比python那个代码简便多了

bj9ye666 发表于 2022-7-6 19:54

简单实用小工具 一直666一直爽
页: [1] 2 3 4
查看完整版本: PHP人民币小写数字转大写