گاهی اوقات در پروژه ای نیاز به تبدیل عدد به حروف داریم .این یک تابع برای تبدیل عدد به حروف هست
مهمترین مزیتش هم سبک و کم حجم بودن اون هست که سرعت بالایی داره
function num2word($num)
{
$num = (string)$num;
$one = array('','یک','دو','سه','چهار','پنج','شش','هفت','هشت','نه');
$ten = array('','','بیست','سی','چهل','پنجاه','شصت','هفتاد','هشتاد','نود',);
$hundred = array('','یکصد','دویست','سیصد','چهارصد','پانصد','ششصد','هفتصد','هشتصد','نهصد',);
$categories = array('','هزار','میلیون','میلیارد','بیلیون','بیلیارد','تریلیون','تریلیارد','کوآدریلیون',);
$exceptions = array('ده','یازده','دوازده','سیزده','چهارده','پانزده','شانزده','هفده','هجده','نوزده',);
$out = '';
$j = 0;
$cnt = strlen($num);
if($cnt==1)
return $one[$num];
for($i=--$cnt;$i>=0;$i-=3){
$add = '';
$i1 = $num[$i];
$i2 = isset($num[$i-1]) ? $num[$i-1] : '';
$i3 = isset($num[$i-2]) ? $num[$i-2] : '';
if(!empty($i3))
$add .= $hundred[$i3].' و ';
if($i2>1)
$add .= $ten[$i2].' و '.$one[$i1].' ';
elseif($i2==1)
$add .= $exceptions[$i1].' ';
else
$add .= $one[$i1].' ';
if($add!=' ')
$add .= $categories[$j++].' و ';
else
$j++;
$out = $add.$out;
}
return mb_substr($out,0,-4);
}

دیدگاهتان را بنویسید لغو پاسخ