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

    +161

    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
    // Подходы различной национальности
    
    /* Первый */
    function filesize_format($bytes, $format = '', $force = ''){
       $force = strtoupper($force);
       $defaultFormat = '%01d %s';
       if (strlen($format) == 0)
       $format = $defaultFormat;
       $bytes = max(0, (int) $bytes);
       $units = array('B', 'KB', 'MB', 'GB', 'TB', 'PB');
       $power = array_search($force, $units);
       if ($power === false)
       $power = $bytes > 0 ? floor(log($bytes, 1024)) : 0;
       return sprintf($format, $bytes / pow(1024, $power), $units[$power]);
    }
    /* Второй */
    function files_size( $size )
    {
        $name = array('Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB');
        $mysize = $size ? round( $size / pow(1024, ( $i = floor( log( $size, 1024 ) ) ) ), 2) .' ' .$name[$i] : $size.' Bytes';
        return $mysize;
    }
    /* Третий */
       function humanSize($size) {
          $a = array("bytes", "kb", "Mb", "Gb", "Tb", "Pb");
          $pos = 0;
          while ($size >= 1024) {
           $size /= 1024;
           $pos++;
          }
          return round($size,2)." ".$a[$pos];
         }

    Вопрос: Определите географические координаты места написания каждого...

    Запостил: DoctorHouse, 27 Апреля 2011

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

    • Индусы, китайцы, только третий метод нормальный ...
      Ответить
    • Лучшее что видел:
      function format_bytes($size) {
      $units = array(' B', ' KB', ' MB', ' GB', ' TB');
      for ($i = 0; $size >= 1024 && $i < 4; $i++) $size /= 1024;
      return round($size, 2) . $units[$i];
      }
      Ответить
      • а если там больше 1024 TB, то будет фейл
        Ответить
        • Ну добавить петабайт несложно, а фейл не столь уж и страшен.
          Ответить
        • Ну и вернёт 100500 ТВ, не страшно.
          Ответить
    • доктор лошадь? вы часто задаёте и решаете загади?
      Ответить
    • Америкосы, индусы, наши? :)

      //Arris
      Ответить
    • Все три кода написаны в одном месте: там, где в момент написания находился ОП.
      Ответить
    • Скандалы, интриги, расследования
      Ответить
    • Встретились, как-то, русский, индус и китаец...
      Ответить
      • победил, конечно, русский? ))))
        Ответить
        • победил работодатель... :)
          Ответить
        • функция Формат(размер) {
          	знач = [' B', ' КБ', ' МБ', ' ГБ', ' ТБ'];
          	цикл (и равно 0; размер большеИлиРавно 1024 И и меньше 4; и равно и плюс 1)
          		размер равно размер разделитьНа 1024;
          	возврат округлить(размер, 2) + знач[и];
          }
          Ответить
          • 函數的格式(大小){
            值=['乙','KB的','MB的','國標','結核病'];
            週期(等於 0,其尺寸大於或等於1024和小於 4,和equals,再加上1)
            大小相等的大小除以1024;
            返回圓形(大小,2)+表示[和];
            }
            Ответить
            • Функция формат (размер) {
                Value = ['B', 'КБ's "," MB's "," ГБ "," туберкулез "];
                Цикл (равен 0, его размер больше или равна 1024 и менее 4, а равно, плюс 1)
                Равные по размеру 1024;
                Вернуться тур (размер, 2) + средств [и];
                }
              Ответить
          • समारोह फ़ॉर्मेट (आकार) {
            VALUE = ['बी','KB', 'MB', 'जीबी', 'टीबी'];
            चक्र (0 के बराबर है, अधिक से अधिक के आकार की तुलना में या 1024 के बराबर है और 4 से कम है, और बराबर है, और 1 से अधिक)
            आकार 1024 से विभाजित आकार के बराबर है;
            बदले दौर (आकार, 2) + [और] का मतलब है;
            }
            Ответить
            • Гуглотранслятничество было смищным примерно первые две недели.
              Сейчас это для слоупоуков максимум.
              Ответить

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