معادل حروفی مقداری با php و آجاکس یا jquery

freelearn

Banned
سلام
من یک مقداری مثلا $adda رو دارم که این مقدار یک مقدار عددی برای مثال 130000 است که میخوام به کمک php و jquery این مقدار رو بصورت حروفی بنویسم

مثلا:
bijokgmrlcieatjn7kmb.jpg
 

meysam-fathi

Active Member
یادمه اون قدیما تو پاسکال یه همچین چیزی نوشته بودم . اساس کار اینجوریه که ابتدا اعداد باید سه رقم سه رقم از هم جدا شن بعد هر دسته جدا جدا تبدیل شه و با اضافه شدن یه اندیس به هر دسته مثله هزار - میلیون - میلارد با و به هم متصل مینکیم. نوشتنش با php فکر میکنم راحت تر از پاسکاله - امشب تو بیکاریم می نویسم - تمرینه خوبیه
 

meysam-fathi

Active Member
PHP:
<?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);
    
?>
 
آخرین ویرایش:

جدیدترین ارسال ها

بالا