fork(1) download
  1. <?php
  2.  
  3. $millions = array(
  4. 0 => 'миллионов',
  5. 11 => 'миллионов',
  6. 1 => 'миллион',
  7. 12 => 'миллионов',
  8. 2 => 'миллиона',
  9. 13 => 'миллионов',
  10. 3 => 'миллиона',
  11. 14 => 'миллионов',
  12. 4 => 'миллиона',
  13. 15 => 'миллионов',
  14. 5 => 'миллионов',
  15. 16 => 'миллионов',
  16. 6 => 'миллионов',
  17. 17 => 'миллионов',
  18. 7 => 'миллионов',
  19. 18 => 'миллионов',
  20. 8 => 'миллионов',
  21. 19 => 'миллионов',
  22. 9 => 'миллионов'
  23. );
  24. $thousand = array(
  25. 0 => 'тысяч',
  26. 1 => 'тысяча',
  27. 11 => 'тысяч',
  28. 2 => 'тысячи',
  29. 12 => 'тысяч',
  30. 3 => 'тысячи',
  31. 13 => 'тысяч',
  32. 4 => 'тысячи',
  33. 14 => 'тысяч',
  34. 5 => 'тысяч',
  35. 15 => 'тысяч',
  36. 6 => 'тысяч',
  37. 16 => 'тысяч',
  38. 7 => 'тысяч',
  39. 17 => 'тысяч',
  40. 8 => 'тысяч',
  41. 18 => 'тысяч',
  42. 9 => 'тысяч',
  43. 19 => 'тысяч'
  44. );
  45. $rubles = array(
  46. 0 => 'рублей',
  47. 1 => 'рубль',
  48. 11 => 'рублей',
  49. 2 => 'рубля',
  50. 12 => 'рублей',
  51. 3 => 'рубля',
  52. 13 => 'рублей',
  53. 4 => 'рубля',
  54. 14 => 'рублей',
  55. 5 => 'рублей',
  56. 15 => 'рублей',
  57. 6 => 'рублей',
  58. 16 => 'рублей',
  59. 7 => 'рублей',
  60. 17 => 'рублей',
  61. 8 => 'рублей',
  62. 18 => 'рублей',
  63. 9 => 'рублей',
  64. 19 => 'рублей'
  65. );
  66. $odnaDve = array(
  67. 1 => 'одна',
  68. 2 => 'две'
  69. );
  70. $spelling = array(
  71. 0 => 'ноль',
  72. 10 => 'десять',
  73. 100 => 'сто',
  74. 1 => 'один',
  75. 11 => 'одиннадцать',
  76. 20 => 'двадцать',
  77. 200 => 'двести',
  78. 2 => 'два',
  79. 12 => 'двенадцать',
  80. 30 => 'тридцать',
  81. 300 => 'триста',
  82. 3 => 'три',
  83. 13 => 'тринадцать',
  84. 40 => 'сорок',
  85. 400 => 'четыреста',
  86. 4 => 'четыре',
  87. 14 => 'четырнадцать',
  88. 50 => 'пятьдесят',
  89. 500 => 'пятьсот',
  90. 5 => 'пять',
  91. 15 => 'пятнадцать',
  92. 60 => 'шестьдесят',
  93. 600 => 'шестьсот',
  94. 6 => 'шесть',
  95. 16 => 'шестнадцать',
  96. 70 => 'семьдесят',
  97. 700 => 'семьсот',
  98. 7 => 'семь',
  99. 17 => 'семнадцать',
  100. 80 => 'восемьдесят',
  101. 800 => 'восемьсот',
  102. 8 => 'восемь',
  103. 18 => 'восемнадцать',
  104. 90 => 'девяносто',
  105. 900 => 'девятьсот',
  106. 9 => 'девять',
  107. 19 => 'девятнадцать'
  108. );
  109.  
  110. // начало миллионы
  111. $number = 910000000;
  112. if ($number == 0) {
  113. return;
  114. }
  115. $numberX = floor($number / 100000000); //Сотни миллионов
  116. if ($numberX > 1) {
  117. $numberX .= "00";
  118. $text .= $spelling[$numberX];
  119. } elseif ($numberX == 0) {
  120. $mill = true;
  121. }
  122. $numberX = floor($number % 100000000); //Десятки миллионов
  123. $numberX = floor($numberX / 1000000);
  124. if ($numberX > 10 && $numberX < 20) {
  125. $numberOn = true;
  126. $numberOn1 = $numberX;
  127. $text .= " " . $spelling[$numberX];
  128. } elseif ($numberX > 0) {
  129. $numberX = floor($numberX / 10);
  130. $numberX .= "0";
  131. $text .= " " . $spelling[$numberX];
  132. } elseif ($numberX == 0) {
  133. $mill2 = true;
  134. }
  135. $numberX = floor($number % 10000000); //Единицы миллионов
  136. $numberX = floor($numberX / 1000000);
  137. if ($numberX > 0 && $numberOn == false) {
  138. $text .= " " . $spelling[$numberX];
  139. } elseif ($numberOn == true) {
  140. $numberX = $numberOn1;
  141. } elseif ($numberX == 0) {
  142. $mill3 = true;
  143. }
  144.  
  145. if ($numberX > 10 && $numberX < 20) { // миллионы слово
  146. $text .= " " . $millions[$numberX];
  147. } elseif ($numberX == 0 && $mill == true && $mill2 == true && $mill3 == true) {
  148.  
  149. } elseif (floor($numberX % 10) > 0) {
  150. $numberX %= 10;
  151. $text .= " " . $millions[$numberX];
  152. } elseif (floor($numberX % 10) == 0) {
  153. $numberX %= 10;
  154. $text .= " " . $millions[$numberX];
  155. }
  156.  
  157. // начало тысячи
  158. $numberX = floor($number % 1000000); //СОТНИ тыысяч
  159. $numberX = floor($numberX / 100000);
  160. if ($numberX > 0) {
  161. $numberX .= "00";
  162. $text .= " " . $spelling[$numberX];
  163. } elseif ($numberX == 0) {
  164. $thous1 = true;
  165. }
  166. $numberX = floor($number % 100000); //ДЕСЯТКИ тыысяч
  167. $numberX = floor($numberX / 1000);
  168. if ($numberX > 10 && $numberX < 20) {
  169. $numberOn = true;
  170. $numberOn1 = $numberX;
  171. $text .= " " . $spelling[$numberX];
  172. } elseif ($numberX > 0) {
  173. $numberX = floor($numberX / 10);
  174. $numberX .= "0";
  175. $text .= " " . $spelling[$numberX];
  176. } elseif ($numberX == 0) {
  177. $thous2 = true;
  178. }
  179.  
  180. $numberX = floor($number % 10000); //ЕДИНИЦЫ тыысяч
  181. $numberX = floor($numberX / 1000);
  182. if ($numberX == 1 or $numberX == 2 && $numberOn == false) {
  183. $text .= " " . $odnaDve[$numberX];
  184. } elseif ($numberX > 0 && $numberOn == false) {
  185. $text .= " " . $spelling[$numberX];
  186. } elseif ($numberX == 0) {
  187. $thous3 = true;
  188. } elseif ($numberOn == true) {
  189. $numberX = $numberOn1;
  190. }
  191.  
  192.  
  193. if ($numberX > 10 && $numberX < 20) { // ТЫСЯЧ
  194. $text .= " " . $thousand[$numberX];
  195. } elseif ($numberX == 0 && $thous1 == true && $thous2 == true && $thous3 == true) {
  196.  
  197. } elseif (floor($numberX % 10) > 0) {
  198. $numberX %= 10;
  199. $text .= " " . $thousand[$numberX];
  200. } elseif (floor($numberX % 10) == 0) {
  201. $numberX %= 10;
  202. $text .= " " . $thousand[$numberX];
  203. }
  204.  
  205.  
  206. //начало сотни
  207. $numberOn = false;
  208. $numberX = floor($number % 1000); //СОТНИ
  209. $numberX = floor($numberX / 100);
  210.  
  211. if ($numberX > 0) {
  212. $numberX .= "00";
  213. $text .= " " . $spelling[$numberX];
  214. }
  215. $numberX = floor($number % 100); //ДЕСЯТКИ
  216.  
  217. if ($numberX > 10 && $numberX < 20) {
  218. $numberOn = true;
  219. $numberOn1 = $numberX;
  220. $text .= " " . $spelling[$numberX];
  221. } elseif ($numberX > 0) {
  222. $numberX = floor($numberX / 10);
  223. $numberX .= "0";
  224. $text .= " " . $spelling[$numberX];
  225. }
  226.  
  227. $numberX = floor($number % 10); //ЕДИНИЦЫ
  228. if ($numberX > 0 && $numberOn == false) {
  229. $text .= " " . $spelling[$numberX];
  230. } elseif ($numberOn == true) {
  231. $numberX = $numberOn1;
  232. }
  233. $text .= " (" . ($number) . ")"; // Число в скобках
  234.  
  235. if ($numberX > 10 && $numberX < 20) { // РУБЛЕЙ
  236. $text .= " " . $rubles[$numberX];
  237. } elseif (floor($numberX % 10) > 0) {
  238. $numberX %= 10;
  239. $text .= " " . $rubles[$numberX];
  240. } elseif (floor($numberX % 10) == 0) {
  241. $numberX %= 10;
  242. $text .= " " . $rubles[$numberX];
  243. }
  244.  
  245. echo $text;
Success #stdin #stdout #stderr 0s 83264KB
stdin
Standard input is empty
stdout
девятьсот десять миллионов (910000000) рублей
stderr
PHP Notice:  Undefined variable: text in /home/XTUN1t/prog.php on line 118
PHP Notice:  Undefined variable: numberOn in /home/XTUN1t/prog.php on line 139
PHP Notice:  Undefined variable: mill in /home/XTUN1t/prog.php on line 147