Как вывести размер файла?
Подскажите как вывести размер файла в php , чтобы напротив имени файла выводился размер (например: index.php — 10 kb. , functions.php — 25 kb. ) может какую-то функцию подскажете, через которую можно, выводить размер файла.
Отслеживать
33.9k 25 25 золотых знаков 130 130 серебряных знаков 222 222 бронзовых знака
задан 16 дек 2015 в 16:31
user192217 user192217
2 ответа 2
Сортировка: Сброс на вариант по умолчанию
Предлагаю такой вариант:
function formatFileSize($size) < $a = array("B", "KB", "MB", "GB", "TB", "PB"); $pos = 0; while ($size >= 1024) < $size /= 1024; $pos++; >return round($size,2)." ".$a[$pos]; >
Отслеживать
ответ дан 16 дек 2015 в 16:37
7,015 1 1 золотой знак 17 17 серебряных знаков 31 31 бронзовый знак
Для этого есть много функций, вот одна из них. Вставляешь в get_filesize () название своего php файла, а на выходе получаешь размер. Также этой функцией можно, получить размер и других файлов.
function get_filesize($file) < if(!file_exists($file)) return "Файл не найден"; $filesize = filesize($file); if($filesize >1024) < $filesize = ($filesize/1024); if($filesize >1024) < $filesize = ($filesize/1024); 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." байт"; >>
$size = get_filesize ('functions.php'); echo "Размер файла: ".$size."";
Размер файлов и директорий в PHP
Чтобы получить размер файла применяется функция filesize($filename) , которая возвращает размер файла указанного в $filename в байтах.
echo filesize(__DIR__ . '/file.jpg'); // 126910
Чтобы перевести байты в килобайты и мегабайты, можно воспользоваться функцией.
Размер директории
Функция рекурсивно проходит по всем директориям и возвращает размер всех файлов в байтах.
function dir_size($path) < $path = rtrim($path, '/'); $size = 0; $dir = opendir($path); if (!$dir) < return 0; >while (false !== ($file = readdir($dir))) < if ($file == '.' || $file == '..') < continue; >elseif (is_dir($path . $file)) < $size += dir_size($path . DIRECTORY_SEPARATOR . $file); >else < $size += filesize($path . DIRECTORY_SEPARATOR . $file); >> closedir($dir); return $size; > echo dir_size(__DIR__);
Использование функии:
echo dir_size(__DIR__); // 130000
Как определить размер файла на PHP
Для того чтобы определить размер файла можно воспользоваться стандартной функцией PHP. Но как отобразить его размер не в байтах а в нормальном формате?
PHP – узнать размер файла и отобразить в килобайтах, мегабайтах или гигабайтах
Задача: получить вывод файла в виде 12.4 Мб. Для решения будем использовать несколько встроенных функций. Изначально размер файла будет отображен в байтах. Например, такой код:
выведет размер именно в байтах (12314), что крайне неудобно. Одна из функций filesize() принимает своим аргументом путь к файлу относительно корня с самого сервера (может понадобиться $_SERVER[‘DOCUMENT_ROOT’]) – это важный момент, поскольку указав не верный путь, ничего не произойдет.
Для того чтобы написать функцию, нужно понимать простейшую математику:
в 1 килобайте (Кб) – 1024 байт
в 1 мегабайте (Мб) – 1024 килобайт
в 1 гигайбайте (Гб) – 1024 мегабайт
Исходя из этого, пишем небольшую функцию для читаемого отображения байт в нужный формат:
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." байт"; >> ?>
echo $size = getFilesize($_SERVER['DOCUMENT_ROOT'].'/images/bg.jpg');
Данный код переконвертирует число в нужную величину, исходя из размера файла. Основная проблема, которая может возникнуть, это правильный путь к файлу, всё остальное должно отработать как часы .
Также, в примере используется функция округления round(), при помощи которой читаемость становится еще более понятней;
Как узнать размер файла в PHP
В сегодняшней статье мы поговорим о том как узнать размер файла в PHP.
Рано или поздно в своих приложениях вы столкнетесь с такой задачей как узнать размер файла. Существует очень много примеров почему мы должны узнавать размер файлов, и один из примеров может быть то когда вы или пользователь начинает загружать изображения или какой-нибудь файл на ваш сервер, и перед тем как начать загрузку этого файла можно включить условия проверки по максимальному размеру загружаемого файла.
В PHP есть два варианта как посмотреть размер файла, и мы сегодня их рассмотрим.
В первом варианте мы будем использовать функцию filesize. Функция filesize принимает всего один обязательный параметр, это имя файл. Возвращает функция размер файла в байтах. В случаи ошибки возвращает FALSE и генерирует ошибку уровня E_WARNING.

В данном примере мы узнаем размер изображения it-inzhener.png, и в результате мы получили 105478 байтов.
Получать размер файла в байтах очень не удобно, и по этому можно сделать функцию, которая будет нам конвертировать байты в другие величины.
function getFilesize($filesize) < if ($filesize > 1024) < $filesize = ($filesize / 1024); if ($filesize > 1024) < $filesize = ($filesize / 1024); if ($filesize > 1024) < $filesize = ($filesize / 1024); $filesize = round($filesize, 1); return $filesize . " GB"; > else < $filesize = round($filesize, 1); return $filesize . " MB"; > > else < $filesize = round($filesize, 1); return $filesize . " KB"; > > else < $filesize = round($filesize, 1); return $filesize . " bytes"; > >
Функция принимает размер в байтах, и возвращает размер уже других величинах. Функция конвертирует байты в нужную величину, исходя из размера самого файла.

Следующим вариантом для получения размера файла можно воспользоваться специальным php классом который называется SplFileInfo. Для начала нам нужно создать объект этого класса и передать в его конструктор сам файл, потом нужно выполнить метод этого класса который называется getSize. Метод getSize возвращает размер файла тоже в байтах, а в случаи какой-нибудь ошибки вернет FALSE.
$splFile = new SplFileInfo('it-inzhener.png'); echo $splFile->getSize();

Всем спасибо, я надеюсь что вам моя статья хоть чем-то помогла.
