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

    +157

    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
    function get_file_info($glob, $freq = 0)
    {
      static $cache = array();
    
      if (isset($cache[$glob])) {
    
        return $cache[$glob];
    
      } else {
    
        $ret = new stdClass;
    
        $g = glob($glob);
    
        $test = trim(`ls $glob`);
        $g = split( "\n", $test );
        if (!is_array($g)) {
          return $ret;
        }
    
        $g = array_reverse($g);
    
        $ret->files = array();
        $now = time();
        $first = true;
    
        foreach($g as $filename) {
    
          $f = new stdClass;
    
          $f->name = $filename;
          $f->size = @filesize($f->name);
          $f->size_str = sprintf("%.1f",$f->size/1024/1024);
    
          if (preg_match("((\\d{12}))", $f->name, $m)) {
        $t = strtotime($m[1]);
        $f->time = $t;
        $f->time_str = str_replace(" ", " ", date("M d, Y H:i T", $f->time));
    
        if ($freq) {
          
          $to = $t + $freq - $now;
    
          if ($to < 0) {
            if ($to > -600) {
              $res = '<em>any moment now.</em>';
            } else {
              $res = '<em>please consult /dev/urandom</em>';
            }
          } else {
            $h = floor($to/3600);
            $m = floor(($to - $h * 3600) / 60);
            
            if ($h) {
              $res = $h . ' hour'.($h==1?'':'s').' and ' . $m . ' minute'.($m==1?'':'s');
            } else {
              $res = $m . ' minute'.($m==1?'':'s');        
            }
          }
    
          $f->next = $res;
        }
    
          }
    
          $ret->files[] = $f;
        }
    
        return $ret;
      }
    }

    Говнокод на сайте php.net :)
    Исходник: http://snaps.php.net/?source

    P.S. это еще цветочки, после обеда будет зачетный с http://www.php.net/source.php?url=/index.php

    Запостил: wmmorgun, 28 Декабря 2010

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

    • >Говнокод на сайте php.net
      Кто-бы сомневался...
      Ответить
      • Не понимаю зачем они снизу тулят ссылку на "source", чтобы показать лулзам как легко лепить какашки на PHP?
        Ответить
        • они этим гордяца
          это же слоган пхп: "еще никогда создание говна не было таким простым и органичным"
          Ответить
          • к слову сказать, по сравнению с js и стоящее тоже не слишком трудно
            Ответить
            • твой пост огорчает крокфорда, если JavaScript, несмотря на гигатонны говна на нём написанного и перверзии связанные с войной браузеров, если разобраться, внутри имеет вполне четкую идеологию, разбираясь же с PHP, становится очевидно что лепили в меру своих неспособностей и из чего под руку попалось
              Ответить
              • хотя я продолжаю непонимать, почему для создания класса я должен в js писать функцию!
                конечно, в js нет классов, есть прототипы. Тоже достаточно путанная идеология.
                Ответить
              • JS обладает довольно неприятной парадигмой
                ПХП не обладает никакой

                если JS думает неправильно
                то PHP недумает вообще
                Ответить
    • str_replace(" ", " ", date("M d, Y H:i T", $f->time))
      фак мой моск...
      Ответить
      • Парсер лох, в оригинале str_replace(" ", "&nbsp;", date("M d, Y H:i T", $f->time))
        Ответить

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