1. PHP / Говнокод #11748

    +64

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    <?php
    $_1_2[1]="одна ";
    $_1_2[2]="две ";
     
    $_1_19[1]="один ";
    $_1_19[2]="два ";
    $_1_19[3]="три ";
    $_1_19[4]="четыре ";
    $_1_19[5]="пять ";
    $_1_19[6]="шесть ";
    $_1_19[7]="семь ";
    $_1_19[8]="восемь ";
    $_1_19[9]="девять ";
    $_1_19[10]="десять ";
     
    $_1_19[11]="одиннацать ";
    $_1_19[12]="двенадцать ";
    $_1_19[13]="тринадцать ";
    $_1_19[14]="четырнадцать ";
    $_1_19[15]="пятнадцать ";
    $_1_19[16]="шестнадцать ";
    $_1_19[17]="семнадцать ";
    $_1_19[18]="восемнадцать ";
    $_1_19[19]="девятнадцать ";
     
    $des[2]="двадцать ";
    $des[3]="тридцать ";
    $des[4]="сорок ";
    $des[5]="пятьдесят ";
    $des[6]="шестьдесят ";
    $des[7]="семьдесят ";
    $des[8]="восемдесят ";
    $des[9]="девяносто ";
     
    $hang[1]="сто ";
    $hang[2]="двести ";
    $hang[3]="триста ";
    $hang[4]="четыреста ";
    $hang[5]="пятьсот ";
    $hang[6]="шестьсот ";
    $hang[7]="семьсот ";
    $hang[8]="восемьсот ";
    $hang[9]="девятьсот ";
     
    $namerub[1]="гривна ";
    $namerub[2]="гривны ";
    $namerub[3]="гривен ";
     
    $nametho[1]="тысяча ";
    $nametho[2]="тысячи ";
    $nametho[3]="тысяч ";
     
    $namemil[1]="миллион ";
    $namemil[2]="миллиона ";
    $namemil[3]="миллионов ";
     
    $namemrd[1]="миллиард ";
    $namemrd[2]="миллиарда ";
    $namemrd[3]="миллиардов ";
     
    $kopeek[1]="копейка ";
    $kopeek[2]="копейки ";
    $kopeek[3]="копеек ";
    
    еще бред
    
    function num2str($L){
    global $_1_2, $_1_19, $des, $hang, $namerub, $nametho, $namemil, $namemrd, $kopeek;
    $s=" ";
    $s1=" ";
    $s2=" ";
    $kop=intval( ( $L*100 - intval( $L )*100 ));
    $L=intval($L);
    if($L>=1000000000){
        $many=0;
        semantic(intval($L / 1000000000),$s1,$many,3);
        $s.=$s1.$namemrd[$many];
        $L%=1000000000;
    }

    Привет :)
    Для многих сайтов, которые работают с числами (продажа товаров, например), то в чеке рекомендуется писать стоимость товара не только цифрами, но и буквами. :)
    Вот для этого и есть такой не большой скрипт на php. Это функция, которой удобно пользоваться.

    И так, вот что нам надо:
    - массив с переменными
    - две функции: одна подфункция - дополняет главную.

    Как пользоваться

    <?php

    $prop=num2str(121.45;
    echo $prop;

    ?>

    насладиться в полном объеме можно здесь: http://zvlad.com/180-vyvod-chislovoy-sumy.html

    Запостил: ahref, 11 Сентября 2012

    Комментарии (17) RSS

    • if($L>=1000000000)

      http://habrastorage.org/storage2/bc8/659/9c9/bc86599c9e5aec49987564e716f0e84c.jpg
      Ответить
    • > $namerub[1]="гривна ";
      Ответить
    • Пример:


      $db->query("SELECT id, name, user FROM " . PREFIX . "_post WHERE id IN (".$str.") ");


      В данном случае запрос будет только на ТРИ таблицы. Другие данные не возможно будет получить.

      Вот тот же звлад все пишет и пишет: http://zvlad.com/146-php-i-mysql-zaprosy.html
      Ответить
    • Прежде чем писать на пхп ему стоило бы научиться пистаь на русском.
      Ответить
    • Тааак, что тут у нас? Пхп? Ну массивы это уже хорошо.
      Понятно что остальное - нейминг, пробелы, код - говённые.

      >Это функция, которой удобно пользоваться.
      Но ведь правда же.
      Ответить
      • Про литералы массивов, он, правда, пока не слышал, но всё впереди...
        Ответить
        • Я не буду плюсовать, потому что видел кое-что и похуже:
          class CifraToWord 
          {
              private final String dvadcatka [] ={"","одна","две","три","четыре","пять","шесть","семь","восемь","девять","десять",
                                                  "одинадцать","двенадцать","тринадцать","четырнадцать","петнадцть","шестнадцать",
                                                  "семнадцать","восемнадцать","девятнадцать","двадцать"};
              private final String desatki [] ={"","десять","двадцать","тридцать","сорок","пятдесят","шесдесят",
                                                "семдесят","восемьдесят","девяносто"};
              private final String sotni   [] ={"","сто","двесте","триста","четыреста","пятсот","шестсот","семсот",
                                                "восемсот","девятсот"};
              private final String tusachi [] ={"тисяча","тисячи","тисяч"};
              private final String milions [] ={"один милион","два милиона","три милиона","четыре милиона","милионов"};
          Ответить
          • Бля. Ну и говнище. Не влазит даже в два комментария.
            public String Convert(int chislo){ 
                  String rezStr="";
                  int celoeSotni=0, ostatok=0, celoeDesatki=0, celoe=0;
            
                  if (chislo<=20 && chislo>0){                // chisla ot 1 - 20
                            rezStr= dvadcatka[chislo];
                  }
                  else{
                	  if( chislo>=21 && chislo<100 ){       // chisla ot 20 - 99
                		  celoeDesatki=chislo/10;
                		  ostatok=chislo%10;
                		  rezStr=desatki[celoeDesatki]+" "+dvadcatka[ostatok];
                	  }
                	  else{
                		  if( chislo>99 && chislo<1000 ){  // obrabotka soten
                			  celoeSotni=chislo/100;
                			  ostatok=chislo%100;
                			  rezStr=sotni[celoeSotni]+" ";
                			  if(ostatok!=0)
                				  rezStr+=Convert(ostatok);  //rekursivno obrabatuvaem ostatok
                		  }
                		  else{
            				if( chislo>999 && chislo<1000000 ){  // obrabotka tusach
            					celoe=chislo/1000;
            					ostatok=chislo%1000;
            					
            					if(celoe>=1 && celoe<=999)
            					    rezStr+=Convert(celoe);         //rekursivno obrabatuvaem celyu chast
            					
            					switch(celoe){                      //vubor nugnugo slova tusachi
            					    case 1:{
            					        rezStr+=" "+tusachi [0]+" ";
            					        break;
            					    }
            					    case 2:
            					    case 3:
            					    case 4:{
            					        rezStr+=" "+tusachi [1]+" ";
            					        break;
            					    }
            					   default:{
            					       rezStr+=" "+tusachi [2]+" ";
            					   }
            					}
            					if(ostatok!=0)
            					   rezStr+=Convert(ostatok);   //rekursivno obrabatuvaem ostatok
            				}
            Ответить
          • else{
            					if( chislo>999999 && chislo<1000000000 ){  // obrabotka milionov
            					    celoe=chislo/1000000;
            					    ostatok=chislo%1000000;
            					
            					    if(celoe>=5 && celoe<=999999)
            					        rezStr+=Convert(celoe); //rekursivno obrabatuvaem celyu chast
            					
            					    switch(celoe){                      //vubor nugnugo slova miliona
            					        case 1:{
            					            rezStr+=" "+milions[0]+" ";
            					            break;
            					        }
            					        case 2:{
            					            rezStr+=" "+milions[1]+" ";
            					            break;
            					        }
            					        case 3:{
            					            rezStr+=" "+milions[2]+" ";
            					            break;
            					        }
            					
            					        case 4:{
            					            rezStr+=" "+milions[3]+" ";
            					            break;
            					        }
            					       default:{
            					            rezStr+=" "+milions[4]+" ";
            					       }
            					    }
            					    if(ostatok!=0)
            					       rezStr+=Convert(ostatok);    //rekursivno obrabatuvaem ostatok
            					 }
            				 }
                          }
                        }
                  }
                 return rezStr;
                }
            }
            Ответить
          • > шесдесят
            > двесте
            > тисяча
            > милион
            Это точно русский, или он дом-труба шатал?
            Ответить

    Добавить комментарий