fork download
  1. <?php
  2.  
  3. // Staring straight up into the sky ... oh my my
  4.  
  5.  
  6. /* Возвращает соответствующую числу форму слова: 1 рубль, 2 рубля, 5 рублей */
  7. function inclineWord($number) {
  8. $last2Digits = $number % 100;
  9. $word1 = "($number) рубль";
  10. $word2 = "($number) рубля";
  11. $word5 = "($number) рубль";
  12. $end5 = '#^([1-9]?[05-9])$^(1[0-9])$#';
  13. $end1 = '#^[02-9]?1$#';
  14. $end2 = '#^[02-9]?[2-4]$#';
  15. if(preg_match($end5, $last2Digits)){
  16. return $word5;
  17. }
  18. elseif(preg_match($end1, $last2Digits)){
  19. return $word1;
  20. }
  21. elseif(preg_match($end2, $last2Digits)){
  22. return $word2;
  23. }
  24. }
  25. /*
  26.   Преобразует числа от 0 до 999 в текст. Параметр $isFemale равен нулю,
  27.   если мы считаем число для мужского рода (один рубль),
  28.   и 1 — для женского (одна тысяча)
  29. */
  30. function smallNumberToText($number) {
  31.  
  32. $spelling = array(
  33. 0 => 'ноль', 10 => 'десять', 100 => 'сто',
  34. 1 => 'один', 11 => 'одиннадцать', 20 => 'двадцать', 200 => 'двести',
  35. 2 => 'два', 12 => 'двенадцать', 30 => 'тридцать', 300 => 'триста',
  36. 3 => 'три', 13 => 'тринадцать', 40 => 'сорок', 400 => 'четыреста',
  37. 4 => 'четыре', 14 => 'четырнадцать', 50 => 'пятьдесят', 500 => 'пятьсот',
  38. 5 => 'пять', 15 => 'пятнадцать', 60 => 'шестьдесят', 600 => 'шестьсот',
  39. 6 => 'шесть', 16 => 'шестнадцать', 70 => 'семьдесят', 700 => 'семьсот',
  40. 7 => 'семь', 17 => 'семнадцать', 80 => 'восемьдесят', 800 => 'восемьсот',
  41. 8 => 'восемь', 18 => 'восемнадцать', 90 => 'девяносто', 900 => 'девятьсот',
  42. 9 => 'девять', 19 => 'девятнадцать'
  43. );
  44.  
  45. $femaleSpelling = array(
  46. 1 => 'одна', 2 => 'две'
  47. );
  48. $from1to900 = '#^[1-9][0?0?]$#';
  49. $first = 0; $second = 0; $third = 0;
  50. $res = "";
  51.  
  52. if ($number == 0){
  53. return $spelling[$number];
  54. }
  55. elseif(preg_match($from1to900, $number)){
  56. return $spelling[$number];
  57. }
  58. elseif(($number >= 11)&&($number <= 19)){
  59. return $spelling[$number];
  60. }
  61. elseif(preg_match('#^[0-9]{2}$#', $number)){
  62. $first = floor($number/10)*10;
  63. $second = $number - $first;
  64. $res = $spelling[$first]." ".$spelling[$second];
  65. return $res;
  66. }
  67. else{
  68. $first = floor($number / 100)*100;
  69. $third = $number - ($first + $second);
  70. if((($number - $first)>=11) && (($number-$first))<=19){
  71. $second = $number - $first;
  72. $res = $spelling[$first]." ".$spelling[$second];
  73. }
  74. else{
  75. $second = floor(($number - $first)/10)*10;
  76. $third = $number - ($first + $second);
  77. if(($first != 0)&&($second != 0)&&($third != 0)){
  78. $res = $spelling[$first]." ".$spelling[$second]." ".$spelling[$third];
  79. }
  80. elseif($second == 0){
  81. $res = $spelling[$first]." ".$spelling[$third];
  82. }
  83. elseif($third == 0){
  84. $res = $spelling[$first]." ".$spelling[$second];
  85. }
  86. }
  87.  
  88. return $res;
  89.  
  90. }
  91. }
  92. function numberToText($number) {
  93. $result = "";
  94.  
  95. if(preg_match('#^([0-9])|([0-9]){2}|([11-19])|([0-9]{3})$#', $number)){
  96. return smallNumberToText($number);
  97. }
  98. elseif(($number >= 1000)&&($number <= 999999)){
  99. $result = smallNumberToText(floor($number/1000))." тыс ".smallNumberToText($number - (floor($number/1000)*1000));
  100. }
  101.  
  102. /* Вызовем функцию несколько раз */
  103. $amount1 = mt_rand(1,999999);
  104. $text1 = numberToText($amount1);
  105.  
  106. echo "На вашем счету {$text1}\n";
  107.  
  108. $amount2 = mt_rand(1,99999999);
  109. $text2 = numberToText($amount2);
  110.  
  111. echo "На вашем счету {$text2}\n";
  112.  
  113. $amount3 = mt_rand(1,99999999);
  114. $text3 = numberToText($amount3);
  115.  
  116. echo "На вашем счету {$text3}\n";
  117.  
  118. $amount4 = mt_rand(1,99999999);
  119. $text4 = numberToText($amount4);
  120.  
  121. echo "На вашем счету {$text4}\n";
  122.  
  123.  
Runtime error #stdin #stdout #stderr 0.02s 24400KB
stdin
Standard input is empty
stdout
Standard output is empty
stderr
PHP Parse error:  syntax error, unexpected end of file in /home/ohLu4Q/prog.php on line 125