Содержание
(PHP 3, PHP 4, PHP 5)
filesize — Получить размер файла
Описание int filesize ( string filename )
Возвращает размер указанного файла в байтах или FALSE в случае возникновения ошибки.
Замечание: Поскольку PHP использует знаковое представления для чисел целого типа, а многие платформы используют 32-битные целые числа, функция filesize() может возвращать неожиданные значения для файлов, чей размер превосходит 2 Гб. Если размер файла находится в пределах 2 — 4 Гб, корректное значение можно получить, используя конструкцию sprintf("%u", filesize($file)) .
Замечание: Результаты этой функции кэшируются. Более подробную информацию смотрите в разделе clearstatcache() .
Подсказка: Начиная с PHP 5.0.0 , эта функция также может быть использована с некоторыми упаковщиками url.
Пример 1. Пример использования функции filesize()
Наверное, Вы часто видите на сайтах подпись с указанием размера файла. Данный показатель сам никто не подписывает. Этот вопрос решается написанием функции на php. В результате она будет выводить строчку вида:
Размер файла: 2.3 Мб
Очень удобно в случае скачивания каких-либо материалов с сайта. Итак, приступим.
Создаём функцию PHP, определяющую размер файла
Функция будет довольно проста и понятна. Использует в себе три встроенные функции:
file_exists — проверка на наличие указанного файла или каталога.
filesize — определить размер файла. Возвращает результат в байтах. Если файл больше 2 Гб, то, в зависимости от сервера, может выводить некорректный результат.
round — встроенная функция, укорачивающая выводимое значения до целого числа и одной десятой после разделительного знака точки.
Функция проверяет наличие самого файла, затем последовательно пытается определить насколько велик размер файла — если больше 1024 байт, то результат следует выводить в Мб, если больше 1024 Мб, то следует выводить в Гб. А в конце каждого этапа встроенная функция round округляет результат с множества цифр до целого значения и одной десятой с разделительным знаком.
Теперь создаём файл функции. Подобные файлы принято содержать в отдельной папке. Например function.
Код PHP (файл function.php)
Функцию мы создали. Далее остаётся её применить.
Код PHP
Всё готово! Пользуйтесь на здоровье!
Спасибо за внимание! И удачи в работе!
Для того чтобы определить размер файла можно воспользоваться стандартной функцией PHP. Но как отобразить его размер не в байтах а в нормальном формате?
PHP — узнать размер файла и отобразить в килобайтах, мегабайтах или гигабайтах
Задача: получить вывод файла в виде 12.4 Мб. Для решения будем использовать несколько встроенных функций. Изначально размер файла будет отображен в байтах. Например, такой код:
выведет размер именно в байтах (12314), что крайне неудобно. Одна из функций filesize() принимает своим аргументом путь к файлу относительно корня с самого сервера (может понадобиться $_SERVER[‘DOCUMENT_ROOT’]) — это важный момент, поскольку указав не верный путь, ничего не произойдет.
Для того чтобы написать функцию, нужно понимать простейшую математику:
в 1 килобайте (Кб) — 1024 байт
в 1 мегабайте (Мб) — 1024 килобайт
в 1 гигайбайте (Гб) — 1024 мегабайт
Исходя из этого, пишем небольшую функцию для читаемого отображения байт в нужный формат:
Данный код переконвертирует число в нужную величину, исходя из размера файла. Основная проблема, которая может возникнуть, это правильный путь к файлу, всё остальное должно отработать как часы 🙂 .
Также, в примере используется функция округления round(), при помощи которой читаемость становится еще более понятней;
автор: Dmitriy
Занимаюсь веб-разработкой с 2011 года. Посмотреть некоторые из моих работ, а также узнать чуть больше обо мне, вы можете на forwww.ru.
Какие услуги предоставляю:
— Создание сайтов, шаблонов и компонентов на 1С-Битрикс;
— Разработка функционала с нуля и доработка кода на уже созданных проектах;
— Адаптивная вёрстка макетов и натяжка на Битрикс;
— Парсинг файлов и выгрузка на сайт (форматы — CSV, XML, XLSX, JSON)
— Интеграции со сторонними сервисами по API;
— Многоязычные версии и многое другое.