تبدیل عدد به حروف فارسی در php موضوع اصلی بحث این نوشته می باشد.
در این مثال با شما همراه خواهیم بود تا اعداد عددی خود را به عدد حرفی فارسی تبدیل و به سادگی از آنها استفاده کنید؛
تا پایان این آموزش همراه ما باشید.
موضوع تمرین یا مثال :
تبدیل عدد به حروف فارسی در php (تبدیل عدد به حروف)
کد ::
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 | <?php class Number2Word { protected $digit1 = array( 0 => 'صفر', 1 => 'یک', 2 => 'دو', 3 => 'سه', 4 => 'چهار', 5 => 'پنج', 6 => 'شش', 7 => 'هفت', 8 => 'هشت', 9 => 'نه', ); protected $digit1_5 = array( 1 => 'یازده', 2 => 'دوازده', 3 => 'سیزده', 4 => 'چهارده', 5 => 'پانزده', 6 => 'شانزده', 7 => 'هفده', 8 => 'هجده', 9 => 'نوزده', ); protected $digit2 = array( 1 => 'ده', 2 => 'بیست', 3 => 'سی', 4 => 'چهل', 5 => 'پنجاه', 6 => 'شصت', 7 => 'هفتاد', 8 => 'هشتاد', 9 => 'نود' ); protected $digit3 = array( 1 => 'صد', 2 => 'دویست', 3 => 'سیصد', 4 => 'چهارصد', 5 => 'پانصد', 6 => 'ششصد', 7 => 'هفتصد', 8 => 'هشتصد', 9 => 'نهصد', ); protected $steps = array( 1 => 'هزار', 2 => 'میلیون', 3 => 'بیلیون', 4 => 'تریلیون', 5 => 'کادریلیون', 6 => 'کوینتریلیون', 7 => 'سکستریلیون', 8 => 'سپتریلیون', 9 => 'اکتریلیون', 10 => 'نونیلیون', 11 => 'دسیلیون', ); protected $t = array( 'and' => 'و', ); function number_format($number, $decimal_precision = 0, $decimals_separator = '.', $thousands_separator = ',') { $number = explode('.', str_replace(' ', '', $number)); $number[0] = str_split(strrev($number[0]), 3); $total_segments = count($number[0]); for ($i = 0; $i < $total_segments; $i++) { $number[0][$i] = strrev($number[0][$i]); } $number[0] = implode($thousands_separator, array_reverse($number[0])); if (!empty($number[1])) { $number[1] = $this->Round($number[1], $decimal_precision); } return implode($decimals_separator, $number); } protected function groupToWords($group) { $d3 = floor($group / 100); $d2 = floor(($group - $d3 * 100) / 10); $d1 = $group - $d3 * 100 - $d2 * 10; $group_array = array(); if ($d3 != 0) { $group_array[] = $this->digit3[$d3]; } if ($d2 == 1 && $d1 != 0) { // 11-19 $group_array[] = $this->digit1_5[$d1]; } else if ($d2 != 0 && $d1 == 0) { // 10-20-...-90 $group_array[] = $this->digit2[$d2]; } else if ($d2 == 0 && $d1 == 0) { // 00 } else if ($d2 == 0 && $d1 != 0) { // 1-9 $group_array[] = $this->digit1[$d1]; } else { // Others $group_array[] = $this->digit2[$d2]; $group_array[] = $this->digit1[$d1]; } if (!count($group_array)) { return FALSE; } return $group_array; } public function numberToWords($number) { $formated = $this->number_format($number, 0, '.', ','); $groups = explode(',', $formated); $steps = count($groups); $parts = array(); foreach ($groups as $step => $group) { $group_words = self::groupToWords($group); if ($group_words) { $part = implode(' ' . $this->t['and'] . ' ', $group_words); if (isset($this->steps[$steps - $step - 1])) { $part .= ' ' . $this->steps[$steps - $step - 1]; } $parts[] = $part; } } return implode(' ' . $this->t['and'] . ' ', $parts); } } |
فایل بالارا با نام Number2Word.php در کنار برنامه ی خود ذخیره کنید و برای استفاده از آن مانند زیر عمل کنید.
1 2 3 4 5 | include('Number2Word.php'); $number = new Number2Word; echo $number->numberToWords(2354); // output : دو هزار و سیصد و پنجاه و چهار |
توضیحات :
- کد بالا به زبان پی اچ پی می باشد .
- برنامه ی بالا دارای یک کلاس به نام Number2Word می باشد.
- درون این کلاس سه تابع number_format ، groupToWords، numberToWords می باشد.
- این برنامه یک عدد یک تا چند رقمی را گرفته و آنرا به معادل حروف آن عدد در زبان فارسی تبدیل می کند.
خب کد بالا می تواند مرجع شما برای نوشتن برنامه ی کارمند اصلی باشد؛
در صورتی که این برنامه را کامل تر کردید نسخه کامل تر آن را برای ما ارسال کنید تا دیگران هم بتوانند از آن استفاده کنند.
برای مشاهده ی تمرین های بیشتر در php روی این لینک کلیک کنید.
موفق و سربلند باشید .
برای امتیاز به این نوشته کلیک کنید!
[کل: 3 میانگین: 3.7]
ممنون
برای من مفید بود
امیدوارم از مطالب دیگه ای که توی سایت هست هم استفاده کنید
اتفاقا الان دنبال همچین چیزی بودم تو پروژم استفاده کنم. مرسی
خواهش میکنم امیدوارم پروژه ی خوبی بشه