Как на PHP узнать размер файла

В простейшем случае для того, чтобы узнать размер файла на PHP достаточно вызвать функцию filesize(), например вот так я узнаю сколько «весит» дистрибутив MODx Evolution, лежащий в каталоге /opt/lampp/htdocs:

<?php echo filesize('/opt/lampp/htdocs/modx-1.0.8.zip') . ' Б'; ?>

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

<?php
function get_human_filesize($size) {
  $kilobyte = 1024;
  if ($size < $kilobyte) {
    return "$size Б";
  } else {
    $size = $size / $kilobyte; // - ковертируем байты в килобайты.
    $units = array(
      '@size Кб',
      '@size МБ',
      '@size ГБ',
      '@size ТБ',
      '@size ПБ',
      '@size ЭБ',
      '@size ЗБ',
      '@size ЙБ',
    );
    foreach ($units as $unit) {
      if (round($size, 2) >= $kilobyte)
        $size = $size / $kilobyte;
      else
        break;
    }
    return str_replace('@size', round($size, 2), $unit);
  }
}

// Пример использования  функции get_human_filesize():
$size = 104857600; // - в байтах.
print get_human_filesize($size);
?>

Ответ будет равен 100 МБ, что и требовалось выполнить.

P.S. Программный код с некоторыми изменениями взаимствован из API CMS Drupal 7.

Опубликовано 16-07-2013 в 07:48


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

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>











Свежие комментарии

  • krasnov8953: к записи Не работает как мне кажется строчка $newTvId = $ »
  • Dimanski: к записи ничего не понимаю. Ставлю ModX на хостинг r01.ru »
  • Дмитрий: к записи Спасибо! Очень выручили. С битриксом беда, а прав »
  • леонид: к записи как сделать что были в ряд? у меня получается по о »
  • Администратор: к записи Статический IP. »
  • Steel: к записи Администратор, вы данную проблему решили подключен »
  • Дмитрий: к записи Хотел узнать как прикрутить данное окно (http://re »

Последние твиты