Rumah >pembangunan bahagian belakang >masalah PHP >Bagaimana untuk menukar nombor kepada bahasa Inggeris dalam php
Cara menukar nombor kepada bahasa Inggeris dalam php: 1. Buat fail contoh PHP 2. Tukar nombor melalui "function umoney($num,$type="usd") {...}" kaedah Hanya tukar kepada bahasa Inggeris.
Persekitaran pengendalian artikel ini: sistem Windows 7, PHP versi 7.4, komputer Dell G3.
Bagaimana untuk menukar nombor kepada bahasa Inggeris dalam php?
PHP Tukar angka amaun ke dalam bahasa Inggeris
Saya telah lama mencarinya, tetapi kata kunci carian sentiasa kelihatan tidak memuaskan.
Kodnya adalah seperti berikut:
<?php $num=1220.01; echo fmoney($num);//结果:1,220.21 echo umoney($num); //结果:ONE THOUSAND AND TWO HUNDRED TWENTY DOLLARS AND TWENTY-ONE CENTS ONLY echo umoney($num,"rmb"); //结果:ONE THOUSAND AND TWO HUNDRED TWENTY YUAN AND TWENTY-ONE FEN ONLY //define //格式化货币 function fmoney($num) { $num=0+$num; $num = sprintf("%.02f",$num); if(strlen($num) <= 6) return $num; //从最后开始算起,每3个数它加一个"," for($i=strlen($num)-1,$k=1, $j=100; $i >= 0; $i--,$k++) { $one_num = substr($num,$i,1); if($one_num ==".") { $numArray[$j--] = $one_num; $k=0; continue; } if($k%3==0 and $i!=0) { //如果正好只剩下3个数字,则不加',' $numArray[$j--] = $one_num; $numArray[$j--] = ","; $k=0; } else { $numArray[$j--]=$one_num; } } ksort($numArray); return join("",$numArray); } function umoney($num,$type="usd") { global $numTable,$commaTable,$moneyType; //global $numTable; $numTable[0]="ZERO "; $numTable[1]="ONE "; $numTable[2]="TWO "; $numTable[3]="THREE "; $numTable[4]="FOUR "; $numTable[5]="FIVE "; $numTable[6]="SIX "; $numTable[7]="SEVEN "; $numTable[8]="EIGHT "; $numTable[9]="NINE "; $numTable[10]="TEN "; $numTable[11]="ELEVEN "; $numTable[12]="TWELVE "; $numTable[13]="THIRTEEN "; $numTable[14]="FOURTEEN "; $numTable[15]="FIFTEEN "; $numTable[16]="SIXTEEN "; $numTable[17]="SEVENTEEN "; $numTable[18]="EIGHTEEN "; $numTable[19]="NINETEEN "; $numTable[20]="TWENTY "; $numTable[30]="THIRTY "; $numTable[40]="FORTY "; $numTable[50]="FIFTY "; $numTable[60]="SIXTY "; $numTable[70]="SEVENTY "; $numTable[80]="EIGHTY "; $numTable[90]="NINETY "; $commaTable[0]="HUNDRED "; $commaTable[1]="THOUSAND "; $commaTable[2]="MILLION "; $commaTable[3]="MILLIARD "; $commaTable[4]="BILLION "; $commaTable[5]="????? "; //单位 $moneyType["usd"]="DOLLARS "; $moneyType["usd_1"]="CENTS ONLY"; $moneyType["rmb"]="YUAN "; $moneyType["rmb_1"]="FEN ONLY"; if($type=="") $type="usd"; $fnum = fmoney($num); $numArray = explode(",",$fnum); $resultArray = array(); $k=0; $cc=count($numArray); for($i = 0; $i < count($numArray); $i++) { $num_str = $numArray[$i]; //echo "<br>"; //小数位的处理400.21 if(eregi("\.",$num_str)) { $dotArray = explode(".",$num_str); if($dotArray[1] != 0) { $resultArray[$k++]=format3num($dotArray[0]+0); $resultArray[$k++]=$moneyType[strtolower($type)]; $resultArray[$k++]="AND "; $resultArray[$k++]=format3num($dotArray[1]+0); $resultArray[$k++]=$moneyType[strtolower($type)."_1"]; } else { $resultArray[$k++]=format3num($dotArray[0]+0); $resultArray[$k++]=$moneyType[strtolower($type)]; } } else { //非小数位的处理 if(($num_str+0)!=0) { $resultArray[$k++]=format3num($num_str+0); $resultArray[$k++]=$commaTable[--$cc]; //判断:除小数外其余若不为零则加and for($j=$i; $j <= $cc; $j++) { //echo "<br>"; //echo $numArray[$j]; if($numArray[$j] !=0) { $resultArray[$k++]="AND "; break; } } } } } return join("",$resultArray); } function format3num($num) { global $numTable,$commaTable; $numlen = strlen($num); for($i = 0,$j = 0;$i < $numlen; $i++) { $bitenum[$j++] = substr($num,$i,1); } if($num==0) return ""; if($numlen == 1) return $numTable[$num]; if($numlen == 2) { if($num <= 20) return $numTable[$num]; //第一位不可能零 if($bitenum[1]==0) { return $numTable[$num]; } else { return trim($numTable[$bitenum[0]*10])."-".$numTable[$bitenum[1]]; } } //第一个不可能为零 if($numlen == 3) { if($bitenum[1]==0 && $bitenum[2]==0) { //100 return $numTable[$bitenum[0]].$commaTable[0]; } elseif($bitenum[1]==0) { //102 return $numTable[$bitenum[0]].$commaTable[0].$numTable[$bitenum[2]]; } elseif ($bitenum[2]==0) { //120 return $numTable[$bitenum[0]].$commaTable[0].$numTable[$bitenum[1]*10]; } else { //123 return $numTable[$bitenum[0]].$commaTable[0].trim($numTable[$bitenum[1]*10])."-".$numTable[$bitenum[2]]; } } return $num; } ?>
Pembelajaran yang disyorkan: "Tutorial Video PHP"
Atas ialah kandungan terperinci Bagaimana untuk menukar nombor kepada bahasa Inggeris dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!