Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: FTP-менеджер 1.0 - вывод количества файлов и каталогов

Сообщения:  [1-7] 

 
 автор: cheops   (29.08.2011 в 14:27)   письмо автору
 
   для: Satis-PSP   (29.08.2011 в 13:05)
 

Если нужно подчитать объем, занимаемый директорией, да, совершенно верно. Если нужно количество файлов в директории, то следует подсчитывать штуки, не байты.

  Ответить  
 
 автор: Satis-PSP   (29.08.2011 в 13:05)   письмо автору
 
   для: cheops   (29.08.2011 в 10:39)
 

> else
> {
> // Если перед нами файл, подсчитываем его
> $global_size++;
> }

по моему здесь нужно было так: $global_size += $size;

  Ответить  
 
 автор: clubxaliav   (29.08.2011 в 12:55)   письмо автору
 
   для: cheops   (29.08.2011 в 10:39)
 

Спасибо, будем пробывать!

  Ответить  
 
 автор: 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;
  }
?>

  Ответить  
 
 автор: clubxaliav   (28.08.2011 в 17:25)   письмо автору
 
   для: cheops   (28.08.2011 в 16:56)
 

а как правильно подсчитать? Вроде как с помощью функций is_dir и is_file но не как не могу нужный пример найти, а на угад тыкать особо уже надоело!

Прошу помочь. Спасибо

  Ответить  
 
 автор: cheops   (28.08.2011 в 16:56)   письмо автору
 
   для: clubxaliav   (28.08.2011 в 13:01)
 

Нужно их открыть и пересчитать файлы в них.

  Ответить  
 
 автор: clubxaliav   (28.08.2011 в 13:01)   письмо автору
 
 

Как сделать в скрипте вывод количества файлов и каталогов при заходе в директорию?

  Ответить  

Сообщения:  [1-7] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования