Поиграть


Фотографии знаменитостей, Герои нашего времени

Число прописью на PHP

“Сумма прописью” Очередной типичный вопрос созрел: Есть сумма: 1 245 руб. 04 коп. Надо получить: Одна тысяча двести сорок пять руб. 04 коп

Code (php)
  1.  
  2. <?
  3. $_1_2[1]="одна ";
  4. $_1_2[2]="две ";
  5.  
  6. $_1_19[1]="один ";
  7. $_1_19[2]="два ";
  8. $_1_19[3]="три ";
  9. $_1_19[4]="четыре ";
  10. $_1_19[5]="пять ";
  11. $_1_19[6]="шесть ";
  12. $_1_19[7]="семь ";
  13. $_1_19[8]="восемь ";
  14. $_1_19[9]="девять ";
  15. $_1_19[10]="десять ";
  16.  
  17. $_1_19[11]="одиннацать ";
  18. $_1_19[12]="двенадцать ";
  19. $_1_19[13]="тринадцать ";
  20. $_1_19[14]="четырнадцать ";
  21. $_1_19[15]="пятнадцать ";
  22. $_1_19[16]="шестнадцать ";
  23. $_1_19[17]="семнадцать ";
  24. $_1_19[18]="восемнадцать ";
  25. $_1_19[19]="девятнадцать ";
  26.  
  27. $des[2]="двадцать ";
  28. $des[3]="тридцать ";
  29. $des[4]="сорок ";
  30. $des[5]="пятьдесят ";
  31. $des[6]="шестьдесят ";
  32. $des[7]="семьдесят ";
  33. $des[8]="восемдесят ";
  34. $des[9]="девяносто ";
  35.  
  36. $hang[1]="сто ";
  37. $hang[2]="двести ";
  38. $hang[3]="триста ";
  39. $hang[4]="четыреста ";
  40. $hang[5]="пятьсот ";
  41. $hang[6]="шестьсот ";
  42. $hang[7]="семьсот ";
  43. $hang[8]="восемьсот ";
  44. $hang[9]="девятьсот ";
  45.  
  46. $namerub[1]="рубль ";
  47. $namerub[2]="рубля ";
  48. $namerub[3]="рублей ";
  49.  
  50. $nametho[1]="тысяча ";
  51. $nametho[2]="тысячи ";
  52. $nametho[3]="тысяч ";
  53.  
  54. $namemil[1]="миллион ";
  55. $namemil[2]="миллиона ";
  56. $namemil[3]="миллионов ";
  57.  
  58. $namemrd[1]="миллиард ";
  59. $namemrd[2]="миллиарда ";
  60. $namemrd[3]="миллиардов ";
  61.  
  62. $kopeek[1]="копейка ";
  63. $kopeek[2]="копейки ";
  64. $kopeek[3]="копеек ";
  65.  
  66.  
  67. function semantic($i,&$words,&$fem,$f){
  68. global $_1_2, $_1_19, $des, $hang, $namerub, $nametho, $namemil, $namemrd;
  69. $words="";
  70. $fl=0;
  71. if($i >= 100){
  72. $jkl = intval($i / 100);
  73. $words.=$hang[$jkl];
  74. $i%=100;
  75. }
  76. if($i >= 20){
  77. $jkl = intval($i / 10);
  78. $words.=$des[$jkl];
  79. $i%=10;
  80. $fl=1;
  81. }
  82. switch($i){
  83. case 1: $fem=1; break;
  84. case 2:
  85. case 3:
  86. case 4: $fem=2; break;
  87. default: $fem=3; break;
  88. }
  89. if( $i ){
  90. if( $i < 3 && $f > 0 ){
  91. if ( $f >= 2 ) {
  92. $words.=$_1_19[$i];
  93. }
  94. else {
  95. $words.=$_1_2[$i];
  96. }
  97. }
  98. else {
  99. $words.=$_1_19[$i];
  100. }
  101. }
  102. }
  103.  
  104.  
  105. function num2str($L){
  106. global $_1_2, $_1_19, $des, $hang, $namerub, $nametho, $namemil, $namemrd, $kopeek;
  107.  
  108. $s=" ";
  109. $s1=" ";
  110. $s2=" ";
  111. $kop=intval( ( $L*100 - intval( $L )*100 ));
  112. $L=intval($L);
  113. if($L>=1000000000){
  114. $many=0;
  115. semantic(intval($L / 1000000000),$s1,$many,3);
  116. $s.=$s1.$namemrd[$many];
  117. $L%=1000000000;
  118. }
  119.  
  120. if($L >= 1000000){
  121. $many=0;
  122. semantic(intval($L / 1000000),$s1,$many,2);
  123. $s.=$s1.$namemil[$many];
  124. $L%=1000000;
  125. if($L==0){
  126. $s.="рублей ";
  127. }
  128. }
  129.  
  130. if($L >= 1000){
  131. $many=0;
  132. semantic(intval($L / 1000),$s1,$many,1);
  133. $s.=$s1.$nametho[$many];
  134. $L%=1000;
  135. if($L==0){
  136. $s.="рублей ";
  137. }
  138. }
  139.  
  140. if($L != 0){
  141. $many=0;
  142. semantic($L,$s1,$many,0);
  143. $s.=$s1.$namerub[$many];
  144. }
  145.  
  146. if($kop > 0){
  147. $many=0;
  148. semantic($kop,$s1,$many,1);
  149. $s.=$s1.$kopeek[$many];
  150. }
  151. else {
  152. $s.=" 00 копеек";
  153. }
  154.  
  155. return $s;
  156. }
  157. if (!isset($per)){
  158.  
  159. ?>
  160. <FORM ACTION="<? echo $PHP_SELF; ?>">
  161. Введите положительное число, меньшее 10<sup>6
  162.  
  163. <INPUT type="text" name="per"><BR>
  164. <INPUT type="submit" value="Отправить">
  165. </FORM>
  166. <?} else echo num2str($per);?>
  167.  

+1+2+3+4+5 (Ещё не голосовали)
Загрузка... Загрузка...

Оставьте комментарий

Блог разработчика / разработка интернет магазина
Мультфильмы (500) Days Of Summer | 500 дней лета на www.kinodomino.net
Советую скайп конференция скачать с этого сайта.
Просто и быстро скайп скачать бесплатно можно быстро и качественно.