วันอังคารที่ 11 ตุลาคม พ.ศ. 2554

PHP - ฟังก์ชั่นแปลงตัวเลขให้เป็นตัวอักษร แบบที่ 1

ขอออกตัวไว้ก่อนเลยนะค่ะว่า ฟังก์ชั่นนี้ไม่ได้เขียนเองค่ะ แต่ได้มาจากอินเตอร์เนต และอาจารย์จากสถาบัน Net Design ได้ปรับแก้ไขให้จนสามารถใช้งานไ้ด้จริง จึงนำมาแนะนำกันตรงค่ะ... อ้อ ฟังก์ชั่นนี้สามารถอ่านค่าสตางค์แบบตรงๆ ตัวค่ะ คือ ".11 อ่าน หนึ่งหนึ่งสตางค์" ลองดูนะค่ะ
...
<?php
function convert($number){ 
$txtnum1 = array('ศูนย์','หนึ่ง','สอง','สาม','สี่','ห้า','หก','เจ็ด','แปด','เก้า','สิบ'); 
$txtnum2 = array('','สิบ','ร้อย','พัน','หมื่น','แสน','ล้าน'); 
$number = str_replace(",","",$number); 
$number = str_replace(" ","",$number); 
$number = str_replace("บาท","",$number); 
$number = explode(".",$number); 
if(sizeof($number)>2){ 
return 'ทศนิยมหลายตัวนะจ๊ะ'; 
exit; 
$strlen = strlen($number[0]); 
$convert = ''; 
for($i=0;$i<$strlen;$i++){ 
$n = substr($number[0], $i,1); 
if($n!=0){ 
if($i==($strlen-1) AND $n==1){ 
$convert .= 'เอ็ด'; 
} elseif($i==($strlen-2) AND $n==2){ 
$convert .= 'ยี่'; 
} elseif($i==($strlen-2) AND $n==1){ 
$convert .= ''; 
} else{ 
$convert .= $txtnum1[$n]; 
  $convert .= $txtnum2[$strlen-$i-1]; 

$convert .= 'บาท'; 
if($number[1]=='0' OR $number[1]=='00' OR $number[1]==''){ 
$convert .= 'ถ้วน'; 
}else{ 
$strlen = strlen($number[1]); 
for($i=0;$i<$strlen;$i++){ 
$n = substr($number[1], $i,1); 
if($n!=0){ 
if($i==($strlen-1) AND $n==1){
$convert .= 'หนึ่ง';
} elseif($i==($strlen-2) AND $n==2){
$convert .= 'สอง';
} elseif($i==($strlen-2) AND $n==1){
$convert .= 'หนึ่ง';
} else{ 
$convert .= $txtnum1[$n];
 //$convert .= $txtnum2[$strlen-$i-1]; 
$convert .= 'สตางค์'; 
return $convert; 

$x = '543219.11'; 
echo $x.' => '.convert($x); 
?>
....
เครคิตนี้ยกให้ อ.เอก จากสถาบัน Net Deisgn

ไม่มีความคิดเห็น:

แสดงความคิดเห็น