|
|
|
ผมอยากได้ function เกี่ยวกับ การแปลงตัวเลขเป็นตัวอักษรอะคับ |
|
|
|
|
|
|
|
Code (PHP)
<?php
<meta http-equiv="Content-Type" content="text/html; charset=windows-874" />
<script type="text/javascript">
function KeyCode(objId){
if (event.keyCode >= 96 && event.keyCode<=105 || event.keyCode==110 || event.keyCode==8)
return true;
else
return false;
}
</script>
<?
function tostr($num)
{
$cnum = array();
$thnum1 = array("ศูนย์","หนึ่ง","สอง","สาม","สี่","ห้า","หก","เจ็ด","แปด","เก้า","เอ็ด","ยี่");
$thnum2 = array("สิบ","ร้อย","พัน","หมื่น","แสน","ล้าน","สิบ","ร้อย","พัน","หมื่น","แสน");
$countnum = strlen($num); //นับจำนวนตัวอักษร
$numpos = ($countnum-1); // เลขประจำหลัก
for($i=0;$i<$countnum;$i++) //ตัวเลขแต่ละหลักไปคูณค่าประจำหลัก
{
$pow = pow(10,$numpos);
$position = $pow*(substr($num,$i,1));
$cnum[$i] = $position; //เก็บไว้ที่ array $cnum
$numpos-=1; //ลดค่าประจำหลัก
}
$strth="";
for($j=0;$j<$countnum-2;$j++)
{
if($j==$countnum-7 && substr($cnum[$countnum-7],0,1)==1&&$countnum>7)
{
$strth .= $thnum1[10];
$pos = strlen($cnum[$j]);
$pos -=2;
$strth .= $thnum2[$pos];
}
elseif($j==$countnum-7 && substr($cnum[$countnum-7],0,1)==0&&$countnum>7)
{
$strth .= $thnum2[5];
}
elseif($j==$countnum-8 && substr($cnum[$countnum-8],0,1)==1)
{
$strth .= $thnum2[0];
}
elseif($j==$countnum-8 && substr($cnum[$countnum-8],0,1)==2)
{
$twenty = $thnum1[11].$thnum2[0];
$strth .= $twenty;
}
else
{
$first = substr($cnum[$j],0,1);
if($first ==0)
{
$strth .= "";
}
else
{
$strth .= $thnum1[$first];
$pos = strlen($cnum[$j]);
$pos -=2;
$strth .= $thnum2[$pos];
}
}
}
if(substr($cnum[$countnum-2],0,1)==0)
{
$strth .= "";
}
elseif(substr($cnum[$countnum-2],0,1)==1)
{
$strth .= $thnum2[0];
}
elseif(substr($cnum[$countnum-2],0,1)==2)
{
$twenty = $thnum1[11].$thnum2[0];
$strth .= $twenty;
}
else
{
$value = substr($cnum[$countnum-2],0,1);
$strth .= $thnum1[$value];
$pos = strlen($cnum[$countnum-2]);
$pos-=2;
$strth .= $thnum2[$pos];
}
if(substr($cnum[$countnum-1],0,1)==0 && $countnum>1)
{
$strth .= "";
}
elseif(substr($cnum[$countnum-1],0,1)==1&& $countnum>1)
{
$strth .= $thnum1[10];
}
else
{
$value = substr($cnum[$countnum-1],0,1);
$strth .= $thnum1[$value];
}
return $strth;
}
if(isset($_POST['Convert']))
{
tostr($num);
$num = $_POST['txt'];
echo "Arabic Format : ".number_format($num)."<br>";
echo "Conver to Thai String Format : ".tostr($num);
}
?>
<br>
<br>
<form method="post" name="form1" action="<?=$_SERVER['PHP_SELF']?>">
Convert Arabic Format To Thai Format <br>
<input type="text" name="txt" size="20" maxlength="12" onKeyDown="return KeyCode(txt)">
<input type="Submit" name="Convert" value=" Convert ">
</form>
?>
ปล. ของผมยังไม่ได้ทำการเช็คค่า ทศนิมยมนะครับ ได้เฉพาะจำนวนเต็ม ซึ่งผมคิดว่า ทิศยมคงไม่ยากนักท่านลอง ประยุกต์ดูละกันนะครับ
|
|
|
|
|
Date :
2009-09-19 15:12:27 |
By :
extenser |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณมากคับ
|
|
|
|
|
Date :
2009-09-19 15:14:00 |
By :
lovetummy |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เอ๋อ พี่คับ รบกวนอีกหน่อยคับ
คือพี่สามารถทำเป็นหน่วย สตางค์ ด้วยได้หรือเปล่าคับ
รบกวนหน่อยคับ
|
|
|
|
|
Date :
2009-09-19 15:44:20 |
By :
lovetummy |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผมอยากให้ท่านลองประยุกต์ ลองทำดูเองก่อนครับ ซึ่ง code ข้างต้นนั้นสามารถนำไป implement ต่อยอดสำหรับการทำหน่วยสตางค์ได้แน่นอนครับ
|
|
|
|
|
Date :
2009-09-19 15:50:06 |
By :
extenser |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณมากคับ คุณExtension
|
|
|
|
|
Date :
2009-09-19 15:59:35 |
By :
lovetummy |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
คือ อันนี้ ผมเอาจากเว็บไหนจำไม่ได้แล้วอะ
ไม่ได้ทำเองนะ
Code (PHP)
<?php
function num2thai($number)
{
$t1 = array("ศูนย์", "หนึ่ง", "สอง", "สาม", "สี่", "ห้า", "หก", "เจ็ด", "แปด", "เก้า");
$t2 = array("เอ็ด", "ยี่", "สิบ", "ร้อย", "พัน", "หมื่น", "แสน", "ล้าน");
$zerobahtshow = 0; // ในกรณีที่มีแต่จำนวนสตางค์ เช่น 0.25 หรือ .75 จะให้แสดงคำว่า ศูนย์บาท หรือไม่ 0 = ไม่แสดง, 1 = แสดง
(string) $number;
$number = explode(".", $number);
if(!empty($number[1]))
{
if(strlen($number[1]) == 1)
{
$number[1] .= "0";
}
elseif(strlen($number[1]) > 2)
{
if($number[1]{2} < 5)
{
$number[1] = substr($number[1], 0, 2);
}
else
{
$number[1] = $number[1]{0}.($number[1]{1}+1);
}
}
}
for($i=0; $i<count($number); $i++)
{
$countnum[$i] = strlen($number[$i]);
if($countnum[$i] <= 7)
{
$var[$i][] = $number[$i];
}
else
{
$loopround = ceil($countnum[$i]/6);
for($j=1; $j<=$loopround; $j++)
{
if($j == 1)
{
$slen = 0;
$elen = $countnum[$i]-(($loopround-1)*6);
}
else
{
$slen = $countnum[$i]-((($loopround+1)-$j)*6);
$elen = 6;
}
$var[$i][] = substr($number[$i], $slen, $elen);
}
}
$nstring[$i] = "";
for($k=0; $k<count($var[$i]); $k++)
{
if($k > 0) $nstring[$i] .= $t2[7];
$val = $var[$i][$k];
$tnstring = "";
$countval = strlen($val);
for($l=7; $l>=2; $l--)
{
if($countval >= $l)
{
$v = substr($val, -$l, 1);
if($v > 0)
{
if($l == 2 && $v == 1)
{
$tnstring .= $t2[($l)];
}
elseif($l == 2 && $v == 2)
{
$tnstring .= $t2[1].$t2[($l)];
}
else
{
$tnstring .= $t1[$v].$t2[($l)];
}
}
}
}
if($countval >= 1)
{
$v = substr($val, -1, 1);
if($v > 0)
{
if($v == 1 && $countval > 1 && substr($val, -2, 1) > 0)
{
$tnstring .= $t2[0];
}
else
{
$tnstring .= $t1[$v];
}
}
}
$nstring[$i] .= $tnstring;
}
}
$rstring = "";
if(!empty($nstring[0]) || $zerobahtshow == 1 || empty($nstring[1]))
{
if($nstring[0] == "") $nstring[0] = $t1[0];
$rstring .= $nstring[0]."บาท";
}
if(count($number) == 1 || empty($nstring[1]))
{
$rstring .= "ถ้วน";
}
else
{
$rstring .= $nstring[1]."สตางค์";
}
return $rstring;
}
//header('Content-type:text/html; charset=utf-8;');
echo num2thai(2559844);
?>
|
|
|
|
|
Date :
2009-09-19 17:17:28 |
By :
danya |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
แล้วไม่มีเวอร์ชั่นภาษาอังกฤษเหรอครับ หาๆๆๆๆๆ อยุ่
|
|
|
|
|
Date :
2012-01-09 05:54:49 |
By :
ddsiam |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 04
|