|
|
|
|
|
для: Satis-PSP
(29.08.2011 в 13:05)
| | Если нужно подчитать объем, занимаемый директорией, да, совершенно верно. Если нужно количество файлов в директории, то следует подсчитывать штуки, не байты. | |
|
|
|
|
|
|
|
для: cheops
(29.08.2011 в 10:39)
| | > else
> {
> // Если перед нами файл, подсчитываем его
> $global_size++;
> }
по моему здесь нужно было так: $global_size += $size; | |
|
|
|
|
|
|
|
для: cheops
(29.08.2011 в 10:39)
| | Спасибо, будем пробывать! | |
|
|
|
|
|
|
|
для: clubxaliav
(28.08.2011 в 17:25)
| | Нет, функции is_dir и is_file вам не помогут, так как они имеют дело с файловой системой, а вы работаете через FTP, т.е. все, что вам доступно - это текстовые ответы ftp-функций. Сложность заключается еще в том, что вам потребуется рекурсивно спускаться по дереву директорий, ведь нужно учесть файлы, вложенных директорий, а они в свою очередь могут включать свои поддиректории. Ниже приводится пример такой рекурсивной функции. В качестве первого параметра передается дескриптор FTP-соединения, в качестве второго параметра путь к директории от корня FTP-сервера. Функция возвращает количество файлов (с учетом вложенных директорий).
<?php
// Функция, подсчитывающая количество байтов, занимаемых каталогом $dir
function get_ftp_size($ftp_handle, $dir, $global_size = 0)
{
$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 != ".")
{
// Если перед нами каталог, рекурсивно вызываем для
// него функцию get_ftp_size()
$dir_new = trim($dir."/".$file,"/");
$global_size = get_ftp_size($ftp_handle,
$dir_new,
$global_size);
}
else
{
// Если перед нами файл, подсчитываем его
$global_size++;
}
}
}
return $global_size;
}
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(28.08.2011 в 16:56)
| | а как правильно подсчитать? Вроде как с помощью функций is_dir и is_file но не как не могу нужный пример найти, а на угад тыкать особо уже надоело!
Прошу помочь. Спасибо | |
|
|
|
|
|
|
|
для: clubxaliav
(28.08.2011 в 13:01)
| | Нужно их открыть и пересчитать файлы в них. | |
|
|
|
|
|
|
| Как сделать в скрипте вывод количества файлов и каталогов при заходе в директорию? | |
|
|
|
|