PHP уроки
ПРОСТО самая лучшая обучалка PHP!
  • Студия LPHPRU
  • Уроки PHP
  • Контакты
  • Помощь
Меню
  • PHP - с чего начать?
  • Уроки PHP
  • Функции PHP
  • Массивы
  • Denwer
  • MySQL
  • Информация
  • Dreamweaver уроки
  • JQuery уроки
  • Галерея
Календарь
Январь (2021)
ПнВтСрЧтПтСбВс
    123
45678910
11121314151617
18192021222324
25262728293031
В продаже

  • Что нового?

    • Тест №2
    • Тест №1 для разработчиков
    • PHP 5.6 RC1
    • SQL. Как cкопировать данные одной колонки в другую, в той же таблице
    • GRUB изменить порядок загрузки OS в Linux
    • SSH - вход на сервер без ввода пароля
    • PhpMyAdmin - проблема с загрузкой большого файла на сервер
  • Комментарии

    • тут нечего не понятно
    • Может уже пора на WebStorm переходит...
    • Здравствуйте. 10 лет пользуюсь др...
    • Была такая проблема, решалась пе...
    • Возможно с течением времени этот...
  • TOP-5

    • Метод POST (2939500)
    • Привет, МИР! (906943)
    • Метод GET (661654)
    • Операторы (601601)
    • Firefox уже запущен, но не отвечает... (346830)

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

Главная » Уроки PHP » Как определить размер файла?
PHP урок № 161

Определяем размер файла

Для чего это может пригодиться?
Первое, что приходит в голову, это вывод ссылки на монитор для скачивания файла с описанием свойств этого файла.
  • Автор: Ульман Л.
  • Год выпуска: 2001
  • Страниц: 288
  • Формат: DJVU
  • Язык: Русский
  • Издательство: ДМК Пресс
  • Качество: Компьютерное
  • Размер файла: 5.24 MB
Последняя строчка, заметели?! Вот чтоб руками это не писать, программа сама будет выводить размер подгружаемого файла. Для этого напишем свою функцию.
В PHP имеется встроенная функция (filesize), которая определяет размер файла в байтах. Мы рассмотрим функцию которая будет высчитывать количество байт и по мере надобности переводить их килобайты, мегабайты или гигабайты.

Листинг № 1 - Функция - определяет размер файла

<?php

//В качестве аргумент $file, функция принимает путь к файлу

function filesize_get($file)
{
    
// проверяем существует ли файл
    
if(!file_exists($file)) return "Файл  отсутствует.";

   
//определяем размер файла
  
$filesize = filesize($file);
   
   
// Если размер переданного в функцию файла больше 1кб
   
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." байт";   
   }
  
}

?>
Принцип прост, функция принимает в качестве аргумента имя файла или путь к нему и последовательно сравнивает размер. Если больше 1024 байт, то выводит значение в килобайтах и т.д.. Функция round укорачивает кол-во знаков после разделителя точки, т.е. целое число и одна десятая.

Урок закончен

Обсудить на форуме

По материалам книги "Головоломки на PHP для хакера".
29.08.2009 19:55:16

Понравился урок? Не пропусти следующий!
Рекомендованные уроки этого раздела:
  • Проверка корректности ввода числа.
  • Как создать свой сайт?
  • Слайдшоу
  • Проверка ввода времени.

Напишите свой комментарий
Ваше имя
Сообщение
Введите цифры с картинки:
 

Комментарии

Мимо проходил 04.01.2011 22:28:42
function conv_size ($size) { $arr=array ("байт", "Кб", "Мб", "Гб", "Тб"); $step=0; while ($size>=1024) { $size/=1024; $step++; } return round ($size, 2).' '.$arr[$step]; }
Firs 19.03.2011 08:38:51
Полезный урок, спасибо вам за него. Как узнать размер файла я знал, но сразу не сообразил как сделать так, что бы инфа отображалась в MB, и не знал укоротить кол-во знаков после разделителя точки.
Илья 11.01.2012 07:35:32
Спасибо большое, часто буду пользоваться
Stas 22.04.2012 11:51:03
Неплохо было привести примеры вызова функции. Не совсем очевидно что необходимо передавать в функцию, может файловый дескриптор, а может имя файла.
SETTER 22.04.2012 17:09:19
Читайте весь урок. Всё очевидно "Принцип прост, функция принимает в качестве аргумента имя файла или путь к нему"
Priler 14.06.2013 00:03:09
Супер! Большое спасибо, работает на ура!!!
Руслан 02.04.2014 14:10:23
Не могу заставить эту функцию работать с путем содержащим кириллицу. Как быть?
fublin 26.05.2014 09:59:54
Да все работает... молодец чувак..
  • Яндекс.Метрика Здесь находится аттестат нашего WM идентификатора 185571665285
  • "LPHPRU" © 2009-2021