"; } // Если перед нами директория, вызываем рекурсивно // функцию scan_dir if(is_dir($dirname."/".$file)) { echo $dirname."/".$file."
"; scan_dir($dirname."/".$file); } } } // Закрываем директорию closedir($dir); } function scan_dir_glob($dirname) { # Если путь пустой, то используем текущий каталог empty($dirname) ? $dirname = "*" : $dirname = $dirname."/*"; $dir = glob($dirname); if ($dir) { foreach($dir as $filename) // Обход массива { if (is_file($filename)) // если файл выводим его { echo "$filename - "; echo date("m.d.y",filemtime($filename))." - "; echo filesize($filename)."
"; } if (is_dir($filename)) // если директория - рекурсия { scan_dir($filename); echo "$filename
"; } } } } function scandir_php($dirname) { $dir_list = scandir($dirname); foreach($dir_list as $file) { if($file != "." && $file != "..") { // Если имеем дело с файлом - регистрируем его if(is_file($dirname."/".$file)) { echo $dirname."/".$file." - ". date("m.d.y",filemtime($dirname."/".$file))." - ". filesize($dirname."/".$file)."
"; } // Если перед нами директория, вызываем рекурсивно // функцию scan_dir if(is_dir($dirname."/".$file)) { echo $dirname."/".$file."
"; scan_dir($dirname."/".$file); } } } } function list_dir($dit,$nbsp='') { for( ; $dit->valid(); $dit->next()) { if($dit->isDir() && !$dit->isDot()) { echo $nbsp.' - '.$dit->current().':
'; if($dit->hasChildren()) echo list_dir($dit->getChildren(),$nbsp.'     '); } elseif($dit->isFile()) echo $nbsp.$dit->current().' ('.$dit->getSize().' байт)
'; } } ################################## $start = gettime(); scan_dir('.'); $stop = gettime(); $dif[] = "scan_dir() - ".bcsub($stop,$start,6); ##################################### $start = gettime(); scan_dir_glob(''); $stop = gettime(); $dif[] = "scan_dir_glob() - ".bcsub($stop,$start,6); ########################### $start = gettime(); list_dir(new RecursiveDirectoryIterator('.')); $stop = gettime(); $dif[] = "list_dir() - ".bcsub($stop,$start,6); ##################################### $start = gettime(); scandir_php('.'); $stop = gettime(); $dif[] = "scandir() - ".bcsub($stop,$start,6); ########################### echo "
"; foreach ($dif as $key => $scan) { echo $key.") ".$scan."
"; } ?>