Просмотр полной версии : Рекурсивно получить список вложенных директорий.
Опять не пройти уровень(:
<?php
@set_time_limit(0);
global $fp;
$fp = fopen("log.txt","w");
function scan($bs = '') {
$dir = opendir("C:/Program Files/VertrigoServ/www/com_clickheat");
while (($s = readdir($dir)) !== false) {
if(is_dir($s) and $s != "." and $s != "..") {
fwrite($fp,$s."\r\n");
scan($bs."\".$s);
}
}
fclose($fp);
}
scan();
?>
Должна быть рекурсия...и она есть.Но почему ничего не записывается в фаил я ума не приложу).
ЗЫ: никогда подобного ранее не делал))
$dir = opendir("C:\\Program Files\\VertrigoServ\\www\\com_clickheat");
или
$dir = opendir("C:/Program Files/VertrigoServ/www/com_clickheat");
имхо - подправь
function scan($bs = '') {
и пониже
$dir = opendir("C:\Program Files\VertrigoServ\www\com_clickheat\".$bs);
и пониже
scan($bs.'\'.$s);
Мда, кульный код в первом посте =) Файл открывается при каждом вызове функции, открывается один и тот же каталог =) Рекурсией мало пахнет
Если использовать '',то выдаёт ошибку.Пример я частично вообще отсюда брал:
http://articles.org.ru/cfaq/index.php?qid=1917
Весь день убил на эту гребаную функцию...охренеть.
переменную нужно объявлять глобальной в самой функции и не нужна тут рекурсия
<?php
@set_time_limit(0);
$fp = fopen("log.txt","w");
function scan($bs = '') {
global $fp;
//$dir = opendir("C:/Program Files/VertrigoServ/www/com_clickheat");
$dir = opendir('.');
while (($s = readdir($dir)) !== false) {
if(is_dir($s) and $s != "." and $s != "..") {
fwrite($fp,$s."\r\n");
}
}
fclose($fp);
}
scan();
?>
п.с. http://forum.antichat.ru/showpost.php?p=1306831&postcount=786 там нужна рекурсия
мой вариант:
<?php
$addr = '.';
$logFile = 'log.txt';
$fp = fopen($logFile,'w');
$dir = opendir($addr);
while ($obj = readdir($dir)) {
if(is_dir($obj) && $obj != "." && $obj != "..") fputs($fp,$obj."\r\n");
}
fclose($fp);
?>
Можно клоцать))Много пищи для размышлений будет )
Ru}{eeZ,первый вариант не катит,ибо выдаёт листинг директорий только.
Pashkela
03.06.2009, 03:17
Вообще-то есть гугл и античат, стыдно господа
У меня вопрос:
при использовании scan($obj) в function scan($dir = '.') подставляется $obj или остаётся '.' ?
Ru}{eeZ,первый вариант не катит,ибо выдаёт листинг директорий только.
эм, а что нужно?
У меня вопрос:
при использовании scan($obj) в function scan($dir = '.') подставляется $obj или остаётся '.' ?
$obj
эм, а что нужно?
Да нет,второй вариант с рекурсией с выдачей листинга поддиректорий как раз то,что нужно)))Одному челу дали это при собеседовании,тык он там полдня просидел))))))))))
Да нет,второй вариант с рекурсией с выдачей листинга поддиректорий как раз то,что нужно)))
грызи гранит Ru}{eeZ'а ^^
Одному челу дали это при собеседовании,тык он там полдня просидел))))))))))
пускай тоже грызёт
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot