fork(5) download
  1. <?php
  2.  
  3. // Staring straight up into the sky ... oh my my
  4.  
  5.  
  6. function spellSmallNumber($num) {
  7.  
  8. $result = array();
  9. $spelling = array(
  10. 0 => 'ноль', 10 => 'десять', 100 => 'сто',
  11. 1 => 'один', 11 => 'одиннадцать', 20 => 'двадцать', 200 => 'двести',
  12. 2 => 'два', 12 => 'двенадцать', 30 => 'тридцать', 300 => 'триста',
  13. 3 => 'три', 13 => 'тринадцать', 40 => 'сорок', 400 => 'четыреста',
  14. 4 => 'четыре', 14 => 'четырнадцать', 50 => 'пятьдесят', 500 => 'пятьсот',
  15. 5 => 'пять', 15 => 'пятнадцать', 60 => 'шестьдесят', 600 => 'шестьсот',
  16. 6 => 'шесть', 16 => 'шестнадцать', 70 => 'семьдесят', 700 => 'семьсот',
  17. 7 => 'семь', 17 => 'семнадцать', 80 => 'восемьдесят', 800 => 'восемьсот',
  18. 8 => 'восемь', 18 => 'восемнадцать', 90 => 'девяносто', 900 => 'девятьсот',
  19. 9 => 'девять', 19 => 'девятнадцать'
  20. );
  21.  
  22. $femaleSpelling = array(
  23. 1 => 'одна', 2 => 'две'
  24. );
  25.  
  26.  
  27. if($num = 0){
  28. return $num;
  29. }
  30.  
  31.  
  32. if($num != 0) {
  33.  
  34. $wordForHund = floor($num / 100) * 100; //сотни
  35. $wordHund = $spelling[$wordForHund];
  36. array_push($result, $wordHund);
  37. }
  38. $wordOne = $num % 100;//слово для десятков
  39. if($wordOne >= 11 && $wordOne <= 20) {
  40. $wordElTw = $spelling[$wordOne];
  41. array_push($result, $wordElTw);
  42. }
  43. else {
  44.  
  45.  
  46. $tens = floor($num / 10) * 10;//слово для десятков
  47. if($tens != 0){
  48. $tens1 = $spelling[$tens];
  49. array_push($result, $tens1);
  50. }
  51. }
  52.  
  53. if($num != 0){ //единицы
  54. $fem = $num % 100;
  55. $fem1 = $num / 100;
  56. if($fem = 0){
  57. if($fem1 >= 1 && $fem1 <=2){
  58. $fem3 = $femaleSpelling[$fem1];
  59. array_push($result, $fem3);
  60. }
  61. }
  62. $one = $num % 10;
  63. array_push($result, $one);
  64. }
  65.  
  66. $text = implode(' ', $result);
  67. return $text;
  68. }
  69.  
  70.  
  71.  
  72. function getWordForm($num, $word, $word1, $word2) {
  73. $z = $num % 10;
  74. if($z = 1){
  75. return $word; // тысяча, миллион
  76. }
  77. $z = $num % 10;
  78. if($z >= 2 && $z <= 4){
  79. return $word1; //тысячи, миллиона
  80. }
  81. else{
  82. return $word2; // тысяч, миллионов
  83. }
  84. }
  85.  
  86. function inclineWord($number, $word1, $word2, $word5) {
  87. $last2Digits = $number % 100;
  88. if($last2Digits = 1) {
  89. return $word1;
  90. } elseif($last2Digits = 2 or 3 or 4) {
  91. return $word2;
  92. } else {
  93. return $word5;
  94. }
  95. }
  96.  
  97.  
  98. function spellNumber($number) {
  99. $hundred = $number % 1000; //сотни
  100. $withoutNum = floor($number / 1000); //без сотен
  101. $thousand = $withoutNum % 1000; //тысячN
  102. $millions = floor($thousand / 1000); // миллионы
  103.  
  104. $numberToString = array();
  105.  
  106. $mil = spellSmallNumber($millions);
  107. array_push($numberToString, $mil);
  108. $milWord = getWordForm($millions,"миллион","миллиона","миллионов");
  109. array_push($numberToString, $milWord);
  110.  
  111. $thous = spellSmallNumber($thousand);
  112. array_push($numberToString, $thous);
  113. $thousWord = getWordForm($thousand,"тысяча","тысячи","тысяч");
  114. array_push($numberToString, $thousWord);
  115.  
  116. $hund = spellSmallNumber($hundred);
  117. array_push($numberToString, $hund);
  118. $hundRouble = inclineWord($hundred,"рубль","рубля","рублей");
  119. array_push($numberToString, $hundRouble);
  120.  
  121. $end = implode(" ", $numberToString);
  122. return $end; //Господи, хоть бы работало...
  123. }
  124.  
  125. $amount1 = mt_rand(1,99999999);
  126. $text1 = spellNumber($amount1);
  127.  
  128. echo "На вашем счету {$text1}\n";
  129.  
  130. $amount2 = mt_rand(1,99999999);
  131. $text2 = spellNumber($amount2);
  132.  
  133. echo "На вашем счету {$text2}\n";
  134.  
  135. $amount3 = mt_rand(1,99999999);
  136. $text3 = spellNumber($amount3);
  137.  
  138. echo "На вашем счету {$text3}\n";
  139.  
  140. $amount4 = mt_rand(1,99999999);
  141. $text4 = spellNumber($amount4);
  142.  
  143. echo "На вашем счету {$text4}\n";
Success #stdin #stdout 0.02s 23504KB
stdin
Standard input is empty
stdout
На вашем счету  миллион  тысяча  рубль
На вашем счету  миллион  тысяча  рубль
На вашем счету  миллион  тысяча  рубль
На вашем счету  миллион  тысяча  рубль