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

Форум PHP

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

 

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

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

тема: Подсчет файлов в директории....

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

 
 автор: Равечка   (07.08.2006 в 19:46)   письмо автору
 
   для: cheops   (07.08.2006 в 19:35)
 

блин. после С++ забываешь что такое глобальные переменные :) спасибо большое.

   
 
 автор: cheops   (07.08.2006 в 19:35)   письмо автору
 
   для: Равечка   (07.08.2006 в 19:12)
 

А ещё лучше здесь использовать $count не в качестве параметра, а объявить эту переменную глобальной при помощи ключевого слова global.
<?php
function recurseTree($oIterator){ 
    global 
$count;
    while (
$oIterator->valid()){ 
        if (
$oIterator->isDir() && !$oIterator->isDot()) { 
            if (
$oIterator->hasChildren()) { 
                
recurseTree($oIterator->getChildren()); 
            } 
        } elseif (
$oIterator->isFile()) { 
            
$count++; 
        } 
    
$oIterator->next(); 
    } 


$count 0;
recurseTree(new recursiveDirectoryIterator('test'));
echo 
$count
?>

   
 
 автор: cheops   (07.08.2006 в 19:33)   письмо автору
 
   для: Равечка   (07.08.2006 в 19:12)
 

Дело в том, что у вас echo $count; выполняется несоколько раз во время рекурсивного спуска, вместо
<?php
  
echo $count;
?>

напишите
<?php
  
echo $count."<br>";
?>

результат будет более понятным.

   
 
 автор: Равечка   (07.08.2006 в 19:12)   письмо автору
 
 

Помогите господа. я совсем запуталась. мне нужно подсчитатьФАЙЛЫ в 2 директориях. Естественно там есть вложеные директори с файлами.

Вот скрипт который я накатала. но в связи с тем что я плохо понимаю принципы рекрсии он выдает несуммированое значение. т. например 21222... а файлов как нетрудно догадаться девять....


function recurseTree($oIterator, $count){
    while ($oIterator->valid()){
        if ($oIterator->isDir() && !$oIterator->isDot()) {
            if ($oIterator->hasChildren()) {
                recurseTree($oIterator->getChildren(), $count);
            }
        } elseif ($oIterator->isFile()) {
            $count++;
        }
    $oIterator->next();
    }
    echo $count;
}

recurseTree(new recursiveDirectoryIterator('test'), '0');

   

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

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

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