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

    +53

    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
    function valid_date($date='0000-00-00 00:00:00') {
    		
            if(strtotime($date)) {
            
        		$d = substr($date,8,2);
        		$m = substr($date,5,2);
        		$y = substr($date,0,4);
        					
        		     if($m == '01') {$m = 'января';}
        		else if($m == '02') {$m = 'февраля';}
        		else if($m == '03') {$m = 'марта';}
        		else if($m == '04') {$m = 'апреля';}
        		else if($m == '05') {$m = 'мая';}
        		else if($m == '06') {$m = 'июня';}
        		else if($m == '07') {$m = 'июля';}
        		else if($m == '08') {$m = 'августа';}
        		else if($m == '09') {$m = 'сентября';}
        		else if($m == '10') {$m = 'октября';}
        		else if($m == '11') {$m = 'ноября';}
        		else if($m == '12') {$m = 'декабря';}
        						
        		if($d[0] == 0) {$d = substr($d,1,2);}
        						
        		return $d." ".$m." ".$y;
                
            } else {
                return false;
            }
    }

    И что думаете ?

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

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

    • показать все, что скрытоchar [5] s1;
      char [5] s2;
      strcpy(s1, "Hello");
      strcpy(s2, "World");
      printf("s%",s1[0]);
      printf("s%",s1[1]);
      printf("s%",s1[2]);
      printf("s%",s1[3]);
      printf("s%",s1[4]);
      printf(" ");
      printf("s%",s2[0]);
      printf("s%",s2[1]);
      printf("s%",s2[2]);
      printf("s%",s2[3]);
      printf("s%",s2[4]);
      printf("\n");

      т.е. можно, конечно, и так. Но зачем?
      Ответить
      • лучше продолжайте учить sql
        Ответить
        • Я, конечно, не претендую на 100% правильность написанного, но не могли бы вы объяснить, где в предыдущем комментарии ошибка? Без намеков на трололо, мне действительно интересно.
          Ответить
          • 1) "Hello" и "World" - массивы из 6 (шести) символов
            2) strcpy копирует src вместе с завершающим нулем, и если в dest не окажется достаточно места (как тут) - затрется чужая память (классическая атака буфера)
            3) форматы в *printf пишутся наоборот - сначала процент, потом символ (т.е. %s)
            4) %s - это вывод строки, а у вас передается символ - программа просто упадет, т.к. по адресу 0..128 никаких строк не лежит, символ выводится как %c (но некоторые компиляторы способны проверять соответствия аргументов для printf на этапе компиляции)
            5) первоначально в посте был другой говнокод, но финальный вариант ничуть не лучше
            Ответить
    • Нет нулября → говно.
      Ответить
    • В строках 9 - 10 офигенное форматирование, надо будет запомнить на всякий.
      Ответить
    • PHP, даты...
      Ответить
    • Впадлу проверять, но я надеюсь здесь есть отстрел?
      8 == '08'
      Ответить

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