Вернуться   RU-Talk.com > Ресурсы для вебмастера > Вебмастерский треп

Вебмастерский треп Помощь в разработке сайтов, обсуждение проектов, запросы на поиск и т.д.

Новая тема Ответ
 
Опции темы Опции просмотра
Старый 20.07.2008, 16:46   #1
Админ
Герцог
 
Аватар для Zoomer
 
Регистрация: 02.07.2007
Адрес: Russia
Сообщений: 4,967
Сказал(а) спасибо: 650
Поблагодарили 424 раз(а) в 339 сообщениях
Деньги: 19.87
Donate
Награды: 7

Платиновый орден Релизер Лучший топик Заслуженный постер Знак отличия за 500 постов Знак отличия за 250 постов Знак отличия за 100 постов 
По умолчанию PHP: Функция подсчета размера папки

PHP: Функция подсчета размера папки

Просто и быстро считаем размер папки.

PHP код:
function GetDirSize($dir){
    
$res shell_exec("du -sk $dir");
    
preg_match"/\d+/"$res$KB);
    
$MB round$KB[0] / 1024);
    return 
$MB;

Использование
PHP код:
echo GetDirSize('/path/to/dir'). ' MB'
Можно доавить конвертацию в удобочитаемый вид, например так:
PHP код:
function MakeSize($bytes){
$size = ($bytes >= (1024 1024 1024 1024))
round($bytes / (1024 1024 1024 1024), 2)." TB"
: (($bytes >= (1024 1024 1024))
round($bytes / (1024 1024 1024), 2)." GB"
: (($bytes >= (1024 1024))
round($bytes / (1024 1024), 2)." MB"
round($bytes 10242)." KB"));
return 
$size;

Использовать так:
PHP код:
echo MakeSize(GetDirSize('/path/to/dir')); 

Zoomer вне форума   Ответить с цитированием
Сказали спасибо:
Старый 15.11.2008, 22:13   #2
Паж
 
Регистрация: 15.11.2008
Сообщений: 3
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Деньги: 0.00
Donate
По умолчанию Ответ: PHP: Функция подсчета размера папки

скажите пожалуйста, какой модуль пхп отвечает за эту функцию?
а то я установил себе на сайт файловый менеджер, а он не хочет работать. в нем есть такой код:

// Get the size of a directory
function getDirSize($dirname)
{
global $txt;

$dir = dir($dirname);
$fileCount = 0;
while ($filename = $dir->read())
$fileCount++;

выдает ошибку в этой строке:
while ($filename = $dir->read())
Lysyj вне форума   Ответить с цитированием
Старый 18.11.2008, 15:47   #3
Админ
Герцог
 
Аватар для Zoomer
 
Регистрация: 02.07.2007
Адрес: Russia
Сообщений: 4,967
Сказал(а) спасибо: 650
Поблагодарили 424 раз(а) в 339 сообщениях
Деньги: 19.87
Donate
Награды: 7

Платиновый орден Релизер Лучший топик Заслуженный постер Знак отличия за 500 постов Знак отличия за 250 постов Знак отличия за 100 постов 
По умолчанию Ответ: PHP: Функция подсчета размера папки

Класс "dir" не подгрузился похоже

Zoomer вне форума   Ответить с цитированием
Старый 20.11.2008, 16:42   #4
Паж
 
Регистрация: 15.11.2008
Сообщений: 3
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Деньги: 0.00
Donate
По умолчанию Ответ: PHP: Функция подсчета размера папки

Цитата:
Сообщение от Zoomer Посмотреть сообщение
Класс "dir" не подгрузился похоже
а вообще для сервера предназначен модуль перл или пхп чтобы обрабатывал это?
если да, то какой модуль?
Lysyj вне форума   Ответить с цитированием
Старый 20.11.2008, 16:52   #5
Админ
Герцог
 
Аватар для Zoomer
 
Регистрация: 02.07.2007
Адрес: Russia
Сообщений: 4,967
Сказал(а) спасибо: 650
Поблагодарили 424 раз(а) в 339 сообщениях
Деньги: 19.87
Donate
Награды: 7

Платиновый орден Релизер Лучший топик Заслуженный постер Знак отличия за 500 постов Знак отличия за 250 постов Знак отличия за 100 постов 
По умолчанию Ответ: PHP: Функция подсчета размера папки

http://phpmysqlmaker.com/2008/06/08/36

На пхп это делается путём обхода всех файлов в папке, если файлов много, всё очень люто тормозит, проще сделать @shell_exec('du -h /path/to/dir'); или df -h /path/to/dir

См. ссылку выше

Zoomer вне форума   Ответить с цитированием
Старый 21.11.2008, 01:02   #6
Паж
 
Регистрация: 15.11.2008
Сообщений: 3
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Деньги: 0.00
Donate
По умолчанию Ответ: PHP: Функция подсчета размера папки

мне код в скрипте не хотелось трогать...
понять не могу, почему на локальной машине с осью виндовс функция работает нормально, а вот на фрибсд эта функция не работает?
Lysyj вне форума   Ответить с цитированием
Старый 21.11.2008, 01:19   #7
Админ
Герцог
 
Аватар для Zoomer
 
Регистрация: 02.07.2007
Адрес: Russia
Сообщений: 4,967
Сказал(а) спасибо: 650
Поблагодарили 424 раз(а) в 339 сообщениях
Деньги: 19.87
Donate
Награды: 7

Платиновый орден Релизер Лучший топик Заслуженный постер Знак отличия за 500 постов Знак отличия за 250 постов Знак отличия за 100 постов 
По умолчанию Ответ: PHP: Функция подсчета размера папки

while ( = ())
++;
полпробуй изменить на

while ( = ()) ++;
т.е. одной

Zoomer вне форума   Ответить с цитированием
Ответ

Закладки

Теги
мамки, подсчета, Функция, php, размер папки, размера

Опции темы
Опции просмотра

adfun.ru

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Выкл.
Pingbacks are Выкл.
Refbacks are Выкл.



Работает на vBulletin® Copyright ©2000 - 2009, Перевод: zCarot (C) Copyright 2007-2009 RU-Talk.com

web counter

Search Engine Friendly URLs by vBSEO 3.2.0 ©2008, Crawlability, Inc.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101