<?php
function PersianNumber($number){
if(!is_numeric($number))
return false;
$arrNum[1] = "یک";
$arrNum[2] = "دو";
$arrNum[3] = "سه";
$arrNum[4] = "چهار";
$arrNum[5] = "پنج";
$arrNum[6] = "شش";
$arrNum[7] = "هفت";
$arrNum[8] = "هشت";
$arrNum[9] = "نه";
$arrNum[10] = "ده";
$arrNum[11] = "یازده";
$arrNum[12] = "دوازده";
$arrNum[13] = "سیزده";
$arrNum[14] = "چهارده";
$arrNum[15] = "پانزده";
$arrNum[16] = "شانزده";
$arrNum[17] = "هفده";
$arrNum[18] = "هجده";
$arrNum[19] = "نوزده";
$arrNum[20] = "بیست";
$arrNum[30] = "سی";
$arrNum[40] = "چهل";
$arrNum[50] = "پنجاه";
$arrNum[60] = "شصت";
$arrNum[70] = "هفتاد";
$arrNum[80] = "هشتاد";
$arrNum[90] = "نود";
$arrNum[100] = "صد";
$arrNum[200] = "دویست";
$arrNum[300] = "سیصد";
$arrNum[400] = "چهارصد";
$arrNum[500] = "پانصد";
$arrNum[600] = "شش صد";
$arrNum[700] = "هفتصد";
$arrNum[800] = "هشت صد";
$arrNum[900] = "نهصد";
$level[0] = "";
$level[1] = " هزار";
$level[2] = " میلیون ";
$level[3] = " میلیارد ";
$level[4] = " تریلیارد ";
if(isset($arrNum[$number]))
return $arrNum[$number];
$leftZero = 3 - (strlen($number) % 3);
$number = str_repeat("0",$leftZero).$number;
$arrMyNumber = str_split($number,3);
$CountLevel = count($arrMyNumber);
$strNum = '';
foreach($arrMyNumber as $key=>$value){
$value = ltrim($value, "0");
$arrValue = str_split($value);
$RightZero = count($arrValue) - 1;
$temp = array();
if(count($arrValue) == 2 and $arrValue[0] == 1 ){
$arrValue[1] += 10;
unset($arrValue[0]);
}
if(count($arrValue) == 3 and $arrValue[1] == 1 ){
$arrValue[2] += 10;
unset($arrValue[1]);
}
foreach($arrValue as $pos=>$oneNumber){
$oneNumber = $oneNumber.str_repeat("0",$RightZero - $pos);
if(isset($arrNum[$oneNumber]))
$temp[] = $arrNum[$oneNumber];
}
if(count($temp))
$strNum .= implode(" و ", $temp).$level[$CountLevel-$key-1].' و ';
}
return rtrim($strNum,' و ');
}
echo PersianNumber(112553);
?>