• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

php数字转汉字代码(算法)_php技巧

php 搞代码 3年前 (2022-01-26) 20次浏览 已收录 0个评论
 <BR>//将数字转换为汉字,比如1210转换为一千二百一十 <BR>$num = "842105580";//九位数 <BR>function del0($num) //去掉数字段前面的0 <BR>{ <BR>return "".intval($num); <BR>} <BR>function n2c($x) //单个数字变汉字 <BR>{ <BR>$arr_n = array("零","一","二","三","四","五","六","七","八","九","十"); <BR>return $arr_n[$x]; <BR>} <BR>function num_r($abcd) //读取数值(4位) <BR>{ <BR>$arr= array(); <BR>$str = ""; //读取后的汉字数值 <BR>$flag = 0; //该位是否为零 <BR>$<mark>6来源gaodaimacom搞#^代%!码网</mark><strong>搞gaodaima代码</strong>flag_end = 1; //是否以“零”结尾 <BR>$size_r = strlen($abcd); <BR>for($i=0; $i<$size_r; $i++) <BR>{ <BR>$arr[$i] = $abcd{$i}; <BR>} <BR>$arrlen = count($arr); <BR>for($j=0; $j<$arrlen; $j++) <BR>{ <BR>$ch = n2c($arr[$arrlen-1-$j]); //从后向前转汉字 <BR>echo $ch; <BR>echo ""; <BR>if($ch == "零" && $flag == 0){ //如果是第一个零 <BR>$flag = 1; //该位为零 <BR>$str = $ch.$str; //加入汉字数值字符串 <BR>continue; <BR>}elseif($ch == "零"){ //如果不是第一个零了 <BR>continue; <BR>} <BR>$flag = 0; //该位不是零 <BR>switch($j) { <BR>case 0: $str = $ch; $flag_end = 0; break; //第一位(末尾),没有以“零”结尾 <BR>case 1: $str = $ch."十".$str; break; //第二位 <BR>case 2: $str = $ch."百".$str; break; //第三位 <BR>case 3: $str = $ch."千".$str; break; //第四位 <BR>} <BR>} <BR>if($flag_end == 1) //如果以“零”结尾 <BR>{ <BR>mb_internal_encoding("UTF-8"); <BR>$str = mb_substr($str, 0, mb_strlen($str)-1); //把“零”去掉 <BR>} <BR>return $str; <BR>} <BR>function num2ch($num) //整体读取转换 <BR>{ <BR>$num_real = del0($num);//去掉前面的“0” <BR>$numlen = strlen($num_real); <BR>echo "numlen=".$numlen.""; <BR>if($numlen >= 9)//如果满九位,读取“亿”位 <BR>{ <BR>$y=substr($num_real, -9, 1); <BR>//echo $y; <BR>$wsbq = substr($num_real, -8, 4); <BR>$gsbq = substr($num_real, -4); <BR>$a = num_r(del0($gsbq)); <BR>$b = num_r(del0($wsbq))."万"; <BR>$c = num_r(del0($y))."亿"; <BR>}elseif($numlen = 5) //如果大于等于“万” <BR>{ <BR>$wsbq = substr($num_real, 0, $numlen-4); <BR>$gsbq = substr($num_real, -4); <BR>$a = num_r(del0($gsbq)); <BR>$b = num_r(del0($wsbq))."万"; <BR>$c=""; <BR>}elseif($numlen <= 4) //如果小于等于“千” <BR>{ <BR>$gsbq = substr( $num_real, -$numlen); <BR>$a = num_r(del0($gsbq)); <BR>$b=""; <BR>$c=""; <BR>} <BR>$ch_num = $c.$b.$a; <BR>return $ch_num; <BR>} <BR>echo $num.""; //数字 <BR>echo num2ch($num); //汉字 <BR>echo ""; <BR>echo num2ch("1240"); <BR>

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:php数字转汉字代码(算法)_php技巧
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址