аватар Автор: Сергей Касаткин | 03 июля 2013 12:55

Статьи / PHP /

Как определить размер файла средствами PHP?


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

Размер файла: 2.3 Мб

Очень удобно в случае скачивания каких-либо материалов с сайта. Итак, приступим.

Создаём функцию PHP, определяющую размер файла


Функция будет довольно проста и понятна. Использует в себе три встроенные функции:

file_exists - проверка на наличие указанного файла или каталога.

filesize - определить размер файла. Возвращает результат в байтах. Если файл больше 2 Гб, то, в зависимости от сервера, может выводить некорректный результат.

round - встроенная функция, укорачивающая выводимое значения до целого числа и одной десятой после разделительного знака точки.

Функция проверяет наличие самого файла, затем последовательно пытается определить насколько велик размер файла - если больше 1024 байт, то результат следует выводить в Мб, если больше 1024 Мб, то следует выводить в Гб. А в конце каждого этапа встроенная функция round округляет результат с множества цифр до целого значения и одной десятой с разделительным знаком.

Теперь создаём файл функции. Подобные файлы принято содержать в отдельной папке. Например function.

Код PHP (файл function.php)

<?php
// аргументов функции будет путь к файлу
function get_filesize($file)
{
    // идем файл
    if(!file_exists($file)) return "Файл  не найден";
   // теперь определяем размер файла в несколько шагов
  $filesize = filesize($file);
   // Если размер больше 1 Кб
   if($filesize > 1024)
   {
       $filesize = ($filesize/1024);
       // Если размер файла больше Килобайта
       // то лучше отобразить его в Мегабайтах. Пересчитываем в Мб
       if($filesize > 1024)
       {
            $filesize = ($filesize/1024);
           // А уж если файл больше 1 Мегабайта, то проверяем
           // Не больше ли он 1 Гигабайта
           if($filesize > 1024)
           {
               $filesize = ($filesize/1024);
               $filesize = round($filesize, 1);
               return $filesize." ГБ";       
           }
           else
           {
               $filesize = round($filesize, 1);
               return $filesize." MБ";   
           }       
       }
       else
       {
           $filesize = round($filesize, 1);
           return $filesize." Кб";   
       }  
   }
   else
   {
       $filesize = round($filesize, 1);
       return $filesize." байт";   
   }
}
?>

Функцию мы создали. Далее остаётся её применить.

Код PHP

<?php
include_once "function/function.php"; // подключаем файл с функцией

// вставляете путь или переменную с путём для обработки его функцией
$size = get_filesize ('images/photo.jpg'); 
echo "Размер файла: <strong>".$size."</strong>"; // выводим результат с размером
?>

Всё готово! Пользуйтесь на здоровье!
Спасибо за внимание! И удачи в работе!
 



Похожие статьи


Комментарии к статье (vk.com)