Что нового

Скрипт определения размеров папок (1 Viewer)

M

Maren

Гость
Нужен такой скрипт,который бы показывал,сколько всего весит какая-либо папка на сервере.Допустимsoft - xx гбvideo - x гби так далее...сможете помочь...??
 
насколько мне известно то такого пока нет для нескольких CMS,это только на обменниках как доп модуль идёт
 
мне всегда казалось,что это обычный PHP скрипт0)
 
Вот скрипт! Думаю сможеш переделать, там код легкийДанный скрипт предназначен для определения размера папки вместе с её содержимом по FTP протоколу. Обычно для определения объем данных приходится вручную открывать каждую папку и выделять левой кнопкой мыши все файлы и подсчитывать их размер, т.к. большинство стандартные FTP менеджеры не позволяют определить размер папки все с её содержимым. Этот скрипт особенно пригодится системным администраторам и всем кому необходимо знать точный объем данных занимаемого на FTP сервере.Скачать: [attachment=39]
 
к сожалению,мои познания в php не очень велики....я этот скрипт укоротил...получлиось вот так:<?php $action = \"\"; if(isset($action)) {    $ftp = \'wp.dnet\';    $login = \'Anonymous\';    $pass = \'\';    $mera = 2;    $ftp_handle = ftp_connect($ftp);     if(!@ftp_login($ftp_handle, $login, $pass)) exit(\"Ошибка определения занимаемого объёма\");     $dir = \"/portal_news/soft/\";    $global_size = 0;    $global_size = get_ftp_size($ftp_handle, $dir, $global_size);    if($mera == 1) $size=ceil(($global_size)/1024).\" КB\";    if($mera == 2) $size=ceil(($global_size)/1024/1024).\" Mб\";     if($mera == 3) $size=round(($global_size)/1024/1024/1024).\" Гб\";    echo \"<b>Soft: $size</b>\";    ftp_close($ftp_handle);      } function get_ftp_size($ftp_handle, $dir, $global_size) {     $file_list = ftp_rawlist($ftp_handle, $dir);     if(!empty($file_list))     {        foreach($file_list as $file)        {           list($acc,                $bloks,                $group,                $user,                $size,                 $month,                 $day,                 $year,                 $file) = preg_split(\"/[\\s]+/\", $file);           if($acc[0] == \'d\' && $file != \"..\" && $file != \".\")           {              $dir_new = trim($dir.\"/\".$file,\"/\");              $global_size = get_ftp_size($ftp_handle, $dir_new, $global_size);           }           else           {              $global_size += $size;           }        }     }     return $global_size; }?> Всё работает...только вот немогу понять,Как сделать это для несокльких папок....
 
Помоему так будет работать:<?php $action = \"\";if(isset($action)){    $ftp = \'wp.dnet\';    $login = \'Anonymous\';    $pass = \'\';    $mera = 2;    $ftp_handle = ftp_connect($ftp);     if(!@ftp_login($ftp_handle, $login, $pass)) exit(\"Ошибка определения занимаемого объёма\");     $dir = \"/portal_news/soft/\";    $global_size = 0;    $global_size = get_ftp_size($ftp_handle, $dir, $global_size);    if($mera == 1) $size=ceil(($global_size)/1024).\" КB\";    if($mera == 2) $size=ceil(($global_size)/1024/1024).\" Mб\";     if($mera == 3) $size=round(($global_size)/1024/1024/1024).\" Гб\";    echo \"<b>Soft: $size</b>\";    $dir = \"/portal_news/muzik/\";    $global_size = 0;    $global_size = get_ftp_size($ftp_handle, $dir, $global_size);    if($mera == 1) $size=ceil(($global_size)/1024).\" КB\";    if($mera == 2) $size=ceil(($global_size)/1024/1024).\" Mб\";     if($mera == 3) $size=round(($global_size)/1024/1024/1024).\" Гб\";    echo \"<b>Soft: $size</b>\";    $dir = \"/portal_news/porno/\";    $global_size = 0;    $global_size = get_ftp_size($ftp_handle, $dir, $global_size);    if($mera == 1) $size=ceil(($global_size)/1024).\" КB\";    if($mera == 2) $size=ceil(($global_size)/1024/1024).\" Mб\";     if($mera == 3) $size=round(($global_size)/1024/1024/1024).\" Гб\";    echo \"<b>Soft: $size</b>\";    ftp_close($ftp_handle);     }function get_ftp_size($ftp_handle, $dir, $global_size) {     $file_list = ftp_rawlist($ftp_handle, $dir);     if(!empty($file_list))     {        foreach($file_list as $file)        {           list($acc,                $bloks,                $group,                $user,                $size,                 $month,                 $day,                 $year,                 $file) = preg_split(\"/[\\s]+/\", $file);           if($acc[0] == \'d\' && $file != \"..\" && $file != \".\")           {              $dir_new = trim($dir.\"/\".$file,\"/\");              $global_size = get_ftp_size($ftp_handle, $dir_new, $global_size);           }           else           {              $global_size += $size;           }        }     }     return $global_size; }?>И т.п. Пробуй.
 
Спасибо большое,но я уже разобрался))сделали даже с кешем,чтобы лишний раз фтп не грузил)))
 

Пользователи, просматривающие данную тему

Верх