تحويل الارقام من الاعداد الى الكلمات

أدخل العدد الذي تريده وأنا أحوله الى الكلمات، هذه الدالة تتطلب التحسين، يمكنك ايضاً استعمال دالة الاستاذ خالد الشمعة (الحل الأمثل)


  
 

function arabicNumber($num){


$aname=array('واحد','اثنان','ثلاثة','اربعة','خمسة','ستة','سبعة','ثمانية','تسعة','عشرة','أحد عشر','اثنا عشر');
$aname10=array('عشر','عشرون','ثلاثون','اربعون','خمسون','ستون','سبعون','ثمانون','تسعون');
$aname100=array('مئة','مئتان','ثلثمائة','اربعمائة','خمسمائة','ستمائة','سبعمائة','ثمانمائة','تسعمائة');
$aname1000=array('الف','الفان');

$num4=floor($num / 1000 );
$num3=floor(($num-100*num3-1000*$num4) / 100 );
$num2=floor(($num-100*$num3) / 10) ;
$num1=$num - 10*$num2;

//echo "<br />num $num num1 $num1 num2 $num2 ";


if($num4==0 and $num>999) return $aname1000[$num4-1];
if($num4>2 and $num4<11 ) return $aname[$num4-1]." آلاف و".arabicNumber($num-1000*$num4);
if($num4>2 and $num4>10) return arabicNumber($num4-1)." ألف و".arabicNumber($num-1000*$num4);
if($num4<3 and $num>1000) return $aname1000[$num4-1]." و ".arabicNumber($num-1000*$num4);


if($num3==0 and $num>99) return $aname100[$num3-1];
if($num3<>0 and $num>100) return $aname100[$num3-1]." و ".arabicNumber($num-100*$num3);

if($num>12 and $num<20) return $aname[$num1-1]." ".$aname10[$num2-1];
if($num>20 and $num % 10 <> 0 ) return $aname[$num1-1]." و ".$aname10[$num2-1];

if($num<13) return $aname[$num-1];
if($num>19 and $num % 10 == 0 ) return $aname10[$num2-1];

return $num;

}