Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Дерево каталогов

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Не получается сделать
dimcrash
Отправлено: 05 Августа, 2011 - 10:56:26
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Май 2011  


Помог: 0 раз(а)




Хочу сделать дерево каталогов.
Пока вот такой вот скрипт:
PHP:
скопировать код в буфер обмена
  1. $path = "J:/";
  2. $ndir = $path;
  3. $olddir = $path;
  4. $space = NULL;
  5.  
  6. function filestree() {
  7. GLOBAL $path;
  8. GLOBAL $ndir;
  9. GLOBAL $olddir;
  10. GLOBAL $space;
  11.  
  12. $files = scandir($path);
  13.  
  14. foreach($files as $item) {
  15.  
  16. if($item != "." and $item != "..") {
  17. echo $space . $item . "<br />";
  18.  
  19. if(is_dir("/" . $item)) {
  20. $space .= "&nbsp;&nbsp;&nbsp;";
  21. $ndir = $path . "/" . $item;
  22. $olddir = $path;
  23. $path = $ndir;
  24. filestree();
  25. $path = $olddir;
  26. $space = NULL;
  27. }
  28.  
  29.  
  30. }
  31.  
  32. }
  33.  
  34. }
  35.  
  36. filestree();


Были разные варианты, но все сходилось на одном: либо отображает файлы и папки всего на 1 уровеь ниже, либо выводит ошибку (он добавляет в адрес два каталога на одном уровне)

Помогите решить задачу, пожалуйста.

(Отредактировано автором: 05 Августа, 2011 - 10:56:46)

 
 Top
OrmaJever Модератор
Отправлено: 05 Августа, 2011 - 11:41:13
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




я вот для себя писал такую функцию.
PHP:
скопировать код в буфер обмена
  1. function scan($dir)
  2. {
  3.         $d = array();
  4.         $arr = opendir($dir);
  5.  
  6.         while($v = readdir($arr))
  7.         {
  8.                 if($v == '.' or $v == '..') continue;
  9.                 if(!is_dir($v)) $d[] = $v;
  10.                 if(is_dir($v) === true) $d[$v] = scan($dir.DIRECTORY_SEPARATOR.$v);
  11.    }
  12.  
  13.         return $d;
  14. }
  15. print_r(scann('x:\\www\\'));


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
dimcrash
Отправлено: 05 Августа, 2011 - 12:10:34
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Май 2011  


Помог: 0 раз(а)




И все равно ниже чем на 1 ур у меня не выводит Нет
 
 Top
OrmaJever Модератор
Отправлено: 05 Августа, 2011 - 12:30:12
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




значит не верно указываете папку


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
illy
Отправлено: 05 Августа, 2011 - 12:52:16
Post Id



Участник


Покинул форум
Сообщений всего: 1117
Дата рег-ции: Июль 2011  
Откуда: от верблюда)


Помог: 28 раз(а)




print_r(scann('x:\\www\\'));

print_r(scan('x:\\www\\'));


-----
Всё гениальное - просто
И ещё проще, если ты - индиго
 
 Top
dimcrash
Отправлено: 08 Августа, 2011 - 06:57:30
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Май 2011  


Помог: 0 раз(а)




Каталог указываю правильно, он сканирует, но вместо, например, этого:
J:/
home
192.168.0.102
www

Он выдает лишь:
J:/
home
192.168.0.102

И не сканирует дальше
 
 Top
illy
Отправлено: 08 Августа, 2011 - 09:49:13
Post Id



Участник


Покинул форум
Сообщений всего: 1117
Дата рег-ции: Июль 2011  
Откуда: от верблюда)


Помог: 28 раз(а)




ну да он сканирует только одну папку. а чтобы ещё и подпапки-это надо чтоб опять выполнилась функция scan но уже для подпапки


-----
Всё гениальное - просто
И ещё проще, если ты - индиго
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Если скрипт не работает »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB