Mình xin giới thiệu tới các bạn code chuyển đổi từ số sang chữ (number to text) bằng PHP. Ví dụ bạn muốn đọc dãy số: 12345, khi dùng hàm này chuyển, các bạn sẽ được chữ là Mười hai nghìn ba trăm bốn mươi lăm. Hàm này rất hữu ích với các bạn đang viết code PHP có liên quan tới chuyển đổi qua lại giữa chữ và số, nhất là trong kế toán.
Demo: http://demo.bienthuy.com/php/php-convert-number-to-text
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 | /* * Convert number to text - developed by Huy Hoa * wWw.BienThuy.Com - wWw.HuyHoa.Com * @ 2013. All Rights Reserved * */ function convert_numhtber_huyhoa_words($number) { $hh1 = ' '; $hh2 = ' '; $hh3 = ' '; $hh4 = 'negative '; $hh5 = ' point '; $ht = array( 0 => 'không', 1 => 'một', 2 => 'hai', 3 => 'ba', 4 => 'bốn', 5 => 'năm', 6 => 'sáu', 7 => 'bảy', 8 => 'tám', 9 => 'chín', 10 => 'mười', 11 => 'mười một', 12 => 'mười hai', 13 => 'mười ba', 14 => 'mười bốn', 15 => 'mười năm', 16 => 'mười sáu', 17 => 'mười bảy', 18 => 'mười tám', 19 => 'mười chín', 20 => 'hai mươi', 30 => 'ba mươi', 40 => 'bốn mươi', 50 => 'năm mươi', 60 => 'sáu mươi', 70 => 'bảy mươi', 80 => 'tám mươi', 90 => 'chín mươi', 100 => 'trăm', 1000 => 'ngàn', 1000000 => 'triệu', 1000000000 => 'tỷ', 1000000000000 => 'nghìn tỷ', 1000000000000000 => 'ngàn triệu triệu', 1000000000000000000 => 'tỷ tỷ' ); if (!is_numeric($number)) { return false; } if (($number >= 0 && (int) $number < 0) || (int) $number < 0 - PHP_INT_MAX) { // overflow trigger_error( 'convert_numhtber_huyhoa_words only accepts numbers between -' . PHP_INT_MAX . ' and ' . PHP_INT_MAX, E_USER_WARNING ); return false; } if ($number < 0) { return $hh4 . convert_numhtber_huyhoa_words(abs($number)); } $string = $fraction = null; if (strpos($number, '.') !== false) { list($number, $fraction) = explode('.', $number); } switch (true) { case $number < 21: $string = $ht[$number]; break; case $number < 100: $tens = ((int) ($number / 10)) * 10; $units = $number % 10; $string = $ht[$tens]; if ($units) { $string .= $hh1 . $ht[$units]; } break; case $number < 1000: $hundreds = $number / 100; $remainder = $number % 100; $string = $ht[$hundreds] . ' ' . $ht[100]; if ($remainder) { $string .= $hh2 . convert_numhtber_huyhoa_words($remainder); } break; default: $baseUnit = pow(1000, floor(log($number, 1000))); $numBaseUnits = (int) ($number / $baseUnit); $remainder = $number % $baseUnit; $string = convert_numhtber_huyhoa_words($numBaseUnits) . ' ' . $ht[$baseUnit]; if ($remainder) { $string .= $remainder < 100 ? $hh2 : $hh3; $string .= convert_numhtber_huyhoa_words($remainder); } break; } if (null !== $fraction && is_numeric($fraction)) { $string .= $hh5; $words = array(); foreach (str_split((string) $fraction) as $number) { $words[] = $ht[$number]; } $string .= implode(' ', $words); } return $string; } |
Download PHP – Convert number to text: http://yyen.info/fnj3A2vWBA
Same tags:
- How to remove all attributes from a tag using PHP
- Tạo hệ thống vote giống youtube
- PHP Random Quotes – Random Text script
Other Posts you may be interested in:
- Làm gì khi email bị đưa vào blacklist?
- 26 điều bạn nên “có kiêng” để “có lành”
- Bảo mật cá nhân trên Windows 10 – privacy setting
- Đêm Buồn Tỉnh Lẻ – HD Karaoke
- Chung kết giải Sao Mai 2009 phong cách nhạc nhẹ
- Kiểm tra thông tin máy tính với CPU-z
- Làm thế nào để boot vào Safe Mode trong windows 10?
Last updated on September 9th, 2014 at 03:48 pm