四时宝库

程序员的知识宝库

PHP价格转大写(php中将大写字母转换为小写字母的函数是)

function currencyToChinese($data)


{

$data = str_replace(',', '', $data);

if #($data == '') {

return '';

}

$prefix = '';

$cncap = '';

if ($data < 0) {

$prefix .= '负';

$data = substr($data, 1, strlen($data) - 1);

}

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

$capdigit = array("", "拾", "佰", "仟");

$subdata = explode(".", $data);

if (!isset($subdata[1])) {

$subdata[1] = 0;

}

if (intval($subdata[0]) == 0 && intval($subdata[1]) == 0) {

return $prefix . "零元整";

}

$yuan = $subdata[0];

$j = 0; $nonzero = 0;

for ($i = 0; $i < strlen($subdata[0]); $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 = "万" . $cncap;

} //确定万位

if (8 == $i) {

$j = 0;

$nonzero=0;

$cncap="亿" . $cncap;

} //确定亿位

$numb = substr($yuan, -1, 1); //截取尾数

$cncap = ($numb) ?

$capnum[$numb] . $capdigit[$j] . $cncap : (($nonzero)?"零" . $cncap : $cncap);

$nonzero = ($numb) ? 1 : $nonzero;

$yuan = substr($yuan, 0, strlen($yuan)-1); //截去尾数

$j++;

}

$chiao = '';

$cent = '';

if (intval($subdata[1]) != 0) {

$chiao = (substr($subdata[1], 0, 1)) ?

$capnum[substr($subdata[1], 0, 1)] . "角" : "零";

$cent = (substr($subdata[1], 1, 1)) ?

$capnum[substr($subdata[1], 1, 1)] . "分" : "零分";

}

$cncap .= $chiao.$cent;

if (substr($subdata[1], -1, 1) === '0') {

$cncap .= "整";

}

$cncap = preg_replace("/(零)+/", "\\1", $cncap); //合并连续“零”

if (intval($subdata[0]) == 0) {

$cncap = preg_replace("/(元零)+/", "", $cncap);

$cncap = preg_replace("/(元)+/", "", $cncap);

}

if (intval($subdata[1]) == 0 || substr($subdata[1], -1, 1) === '0') {

$cncap = preg_replace("/(零分)+/", "", $cncap);

}

return $prefix . $cncap;

}


#coding#


发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接