Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|
Рекурсивно получить список вложенных директорий. |

02.06.2009, 19:58
|
|
Banned
Регистрация: 19.06.2006
Сообщений: 1,239
Провел на форуме: 1469161
Репутация:
142
|
|
Рекурсивно получить список вложенных директорий.
Опять не пройти уровень(:
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..
|
|
|

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");
|
|
|

02.06.2009, 20:27
|
|
Познавший АНТИЧАТ
Регистрация: 02.06.2006
Сообщений: 1,188
Провел на форуме: 6023777
Репутация:
2642
|
|
имхо - подправь
Код:
function scan($bs = '') {
и пониже
Код:
$dir = opendir("C:\Program Files\VertrigoServ\www\com_clickheat\".$bs);
и пониже
|
|
|

02.06.2009, 21:31
|
|
Познавший АНТИЧАТ
Регистрация: 27.04.2007
Сообщений: 1,044
Провел на форуме: 3660186
Репутация:
905
|
|
Мда, кульный код в первом посте =) Файл открывается при каждом вызове функции, открывается один и тот же каталог =) Рекурсией мало пахнет
|
|
|

03.06.2009, 01:40
|
|
Banned
Регистрация: 19.06.2006
Сообщений: 1,239
Провел на форуме: 1469161
Репутация:
142
|
|
Если использовать '',то выдаёт ошибку.Пример я частично вообще отсюда брал:
http://articles.org.ru/cfaq/index.php?qid=1917
Весь день убил на эту гребаную функцию...охренеть.
|
|
|

03.06.2009, 02:15
|
|
Постоянный
Регистрация: 19.02.2008
Сообщений: 438
Провел на форуме: 956872
Репутация:
186
|
|
переменную нужно объявлять глобальной в самой функции и не нужна тут рекурсия
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..
|
|
|

03.06.2009, 03:12
|
|
Banned
Регистрация: 19.06.2006
Сообщений: 1,239
Провел на форуме: 1469161
Репутация:
142
|
|
Можно клоцать))Много пищи для размышлений будет )
|
|
|

03.06.2009, 03:15
|
|
Banned
Регистрация: 19.06.2006
Сообщений: 1,239
Провел на форуме: 1469161
Репутация:
142
|
|
Ru}{eeZ,первый вариант не катит,ибо выдаёт листинг директорий только.
|
|
|

03.06.2009, 03:17
|
|
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
Провел на форуме: 9220514
Репутация:
3338
|
|
Вообще-то есть гугл и античат, стыдно господа
|
|
|

03.06.2009, 03:18
|
|
Banned
Регистрация: 19.06.2006
Сообщений: 1,239
Провел на форуме: 1469161
Репутация:
142
|
|
У меня вопрос:
при использовании 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)
|
|
|
|