TMoney PHP แปลงจำนวนเงินเป็นตัวอักษร

แปลงจากที่เคยเขียนไว้ด้วย delphi ในปี 2005

<?php
echo tmoney(2121234561.21);
function tmoney($p_num){
$stnum = [‘’,’หนึ่ง’,’สอง’,’สาม’,’สี่’,’ห้า’,’หก’,’เจ็ด’,’แปด’,’เก้า’];
$stnum2 = [‘’,’เอ็ด’,’ยี่’];
$stpos = [‘ล้าน’,’สิบ’,’ร้อย’,’พัน’,’หมื่น’,’แสน’];
$strnum = [‘’,’’];
$ret = $strnum;
$strnum[0] = number_format(floor($p_num),0,’.’,’’);
$strnum[1] = number_format(($p_num-floor($p_num))*100,0);
for($badot=0 ; $badot<=1 ; $badot++){
$ret[$badot] = ‘’;
$l = strlen($strnum[$badot]);
for ($i = $l; $i>0 ; $i — ){
$posi = ($l-$i) % 6;
// For สิบ’,’ร้อย’,’พัน’…..
$str2 = ( ($i == $l) or (($strnum[$badot][$i-1] == ‘0’) and ($posi<>0)) ) ? ‘’ : $stpos[$posi];
// for ‘หนึ่ง’,’สอง’,’สาม’…..
if ( ($posi == 1) and ($strnum[$badot][$i-1]==’1') ) {
$str3 =’’;
}elseif ( (($posi == 0) and ($strnum[$badot][$i-1]==’1') and (($i>1) and ($strnum[$badot][$i-1–1] <> ‘0’ )))
or (($posi == 1) and ($strnum[$badot][$i-1]==’2') ) ){
$str3 = $stnum2[ord($strnum[$badot][$i-1])-ord(‘0’)]; // ‘for เอ็ด’ ‘ยี่’
}else{
$str3 = $stnum[ord($strnum[$badot][$i-1])-ord(‘0’)];
}
$ret[$badot] =$str3.$str2.$ret[$badot];
}
}
$ret[0] .= ($ret[0]<>’’) ?’บาท’:’’;
$ret[1] .= ($ret[1]<>’’) ?’สตางค์’:’ถ้วน’;
return $ret[0].$ret[1];
}
?>
Show your support

Clapping shows how much you appreciated Noppakun Nantasanee’s story.