ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Рекурсивно получить список вложенных директорий.
  #1  
Старый 02.06.2009, 19:58
Аватар для Велемир
Велемир
Banned
Регистрация: 19.06.2006
Сообщений: 1,239
Провел на форуме:
1469161

Репутация: 142


Отправить сообщение для Велемир с помощью ICQ
По умолчанию Рекурсивно получить список вложенных директорий.

Опять не пройти уровень(:

PHP код:

<?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();


?>
Должна быть рекурсия...и она есть.Но почему ничего не записывается в фаил я ума не приложу).

ЗЫ: никогда подобного ранее не делал))

Последний раз редактировалось Велемир; 03.06.2009 в 01:37..
 
Ответить с цитированием

  #2  
Старый 02.06.2009, 20:19
Аватар для попугай
попугай
Познавший АНТИЧАТ
Регистрация: 15.01.2008
Сообщений: 1,166
Провел на форуме:
2459557

Репутация: 606


По умолчанию

$dir = opendir("C:\\Program Files\\VertrigoServ\\www\\com_clickheat");

или

$dir = opendir("C:/Program Files/VertrigoServ/www/com_clickheat");
 
Ответить с цитированием

  #3  
Старый 02.06.2009, 20:27
Аватар для NOmeR1
NOmeR1
Познавший АНТИЧАТ
Регистрация: 02.06.2006
Сообщений: 1,188
Провел на форуме:
6023777

Репутация: 2642


Отправить сообщение для NOmeR1 с помощью ICQ
По умолчанию

имхо - подправь
Код:
function scan($bs = '') {
и пониже
Код:
$dir = opendir("C:\Program Files\VertrigoServ\www\com_clickheat\".$bs);
и пониже
Код:
scan($bs.'\'.$s);
 
Ответить с цитированием

  #4  
Старый 02.06.2009, 21:31
Аватар для krypt3r
krypt3r
Познавший АНТИЧАТ
Регистрация: 27.04.2007
Сообщений: 1,044
Провел на форуме:
3660186

Репутация: 905


По умолчанию

Мда, кульный код в первом посте =) Файл открывается при каждом вызове функции, открывается один и тот же каталог =) Рекурсией мало пахнет
 
Ответить с цитированием

  #5  
Старый 03.06.2009, 01:40
Аватар для Велемир
Велемир
Banned
Регистрация: 19.06.2006
Сообщений: 1,239
Провел на форуме:
1469161

Репутация: 142


Отправить сообщение для Велемир с помощью ICQ
По умолчанию

Если использовать '',то выдаёт ошибку.Пример я частично вообще отсюда брал:

http://articles.org.ru/cfaq/index.php?qid=1917

Весь день убил на эту гребаную функцию...охренеть.
 
Ответить с цитированием

  #6  
Старый 03.06.2009, 02:15
Аватар для Ru}{eeZ
Ru}{eeZ
Постоянный
Регистрация: 19.02.2008
Сообщений: 438
Провел на форуме:
956872

Репутация: 186
Отправить сообщение для Ru}{eeZ с помощью ICQ
По умолчанию

переменную нужно объявлять глобальной в самой функции и не нужна тут рекурсия
PHP код:
<?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 код:
<?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; 03.06.2009 в 02:24..
 
Ответить с цитированием

  #7  
Старый 03.06.2009, 03:12
Аватар для Велемир
Велемир
Banned
Регистрация: 19.06.2006
Сообщений: 1,239
Провел на форуме:
1469161

Репутация: 142


Отправить сообщение для Велемир с помощью ICQ
По умолчанию

Можно клоцать))Много пищи для размышлений будет )
 
Ответить с цитированием

  #8  
Старый 03.06.2009, 03:15
Аватар для Велемир
Велемир
Banned
Регистрация: 19.06.2006
Сообщений: 1,239
Провел на форуме:
1469161

Репутация: 142


Отправить сообщение для Велемир с помощью ICQ
По умолчанию

Ru}{eeZ,первый вариант не катит,ибо выдаёт листинг директорий только.
 
Ответить с цитированием

  #9  
Старый 03.06.2009, 03:17
Аватар для Pashkela
Pashkela
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
Провел на форуме:
9220514

Репутация: 3338


Отправить сообщение для Pashkela с помощью ICQ
По умолчанию

Вообще-то есть гугл и античат, стыдно господа
 
Ответить с цитированием

  #10  
Старый 03.06.2009, 03:18
Аватар для Велемир
Велемир
Banned
Регистрация: 19.06.2006
Сообщений: 1,239
Провел на форуме:
1469161

Репутация: 142


Отправить сообщение для Велемир с помощью ICQ
По умолчанию

У меня вопрос:

при использовании scan($obj) в function scan($dir = '.') подставляется $obj или остаётся '.' ?
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибки Windows 2 SVipeR Windows 9 02.03.2009 19:28
Ошибки Windows dinar_007 Windows 19 01.07.2007 13:32



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ