Наверное, Вы часто видите на сайтах подпись с указанием размера файла. Данный показатель сам никто не подписывает. Этот вопрос решается написанием функции на php. В результате она будет выводить строчку вида:
Очень удобно в случае скачивания каких-либо материалов с сайта. Итак, приступим.
Создаём функцию 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>"; // выводим результат с размером
?>
Всё готово! Пользуйтесь на здоровье!
Спасибо за внимание! И удачи в работе!