fork(1) download
  1. <?php
  2.  
  3. function smallNumberToText($number) {
  4.  
  5. $spelling = array(
  6. 0 => 'ноль', 10 => 'десять', 100 => 'сто',
  7. 1 => 'один', 11 => 'одиннадцать', 20 => 'двадцать', 200 => 'двести',
  8. 2 => 'два', 12 => 'двенадцать', 30 => 'тридцать', 300 => 'триста',
  9. 3 => 'три', 13 => 'тринадцать', 40 => 'сорок', 400 => 'четыреста',
  10. 4 => 'четыре', 14 => 'четырнадцать', 50 => 'пятьдесят', 500 => 'пятьсот',
  11. 5 => 'пять', 15 => 'пятнадцать', 60 => 'шестьдесят', 600 => 'шестьсот',
  12. 6 => 'шесть', 16 => 'шестнадцать', 70 => 'семьдесят', 700 => 'семьсот',
  13. 7 => 'семь', 17 => 'семнадцать', 80 => 'восемьдесят', 800 => 'восемьсот',
  14. 8 => 'восемь', 18 => 'восемнадцать', 90 => 'девяносто', 900 => 'девятьсот',
  15. 9 => 'девять', 19 => 'девятнадцать'
  16. );
  17.  
  18. $femaleSpelling = array(
  19. 1 => 'одна', 2 => 'две'
  20. );
  21. $from1to900 = '#^[1-9]0?0?$#';
  22. $from11to19 = '#^[11-19]$#';
  23. $first; $second; $third;
  24. $res = "";
  25.  
  26. if ($number == 0){
  27. return $spelling[$number];
  28. }
  29. elseif(preg_match($from1to900, $number)){
  30. return $spelling[$number];
  31. }
  32. elseif(preg_match($from11to19,$number)){
  33. return $spelling[$number];
  34. }
  35. else{
  36. $first = floor($number / 100)*100;
  37. $second = floor(($number - $first)/10)*10;
  38. $third = $second -(floor($second/10) * 10);
  39. if(($first != 0)&&($second != 0)&&($third != 0)){
  40. $res = $spelling[$first]." ".$spelling[$second]." ".$spelling[$third];
  41. }
  42. return $res;
  43.  
  44. }
  45. }
  46. $num = 423;
  47. $small = smallNumberToText($num);
  48. echo $small;
  49.  
Success #stdin #stdout 0.02s 24192KB
stdin
Standard input is empty
stdout
Standard output is empty