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]   

> Описание: перебор каталогов
Junes
Отправлено: 29 Мая, 2013 - 19:02:03
Post Id


Новичок


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


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




здрасти. у меня такая проблема. мне нужно перебрать папки и их подпапки, но незнаю как это правильно сделать. следующий код перебирает только одну папку и её подпапки. подскажите, как мне сделать чтобы перебирались все папки и подпапки. я из касты новичков php)))

PHP:
скопировать код в буфер обмена
  1. ####### Создание списка папок и подпапок
  2. function directory() {
  3. $name = "../images/";
  4. $dir = opendir($name);
  5. chdir($name );
  6. while($d = readdir($dir)) {
  7.     if(is_dir($d) and $d != "." and $d != "..") {
  8.     $option[] = $d;
  9.     $dirs = opendir($d);
  10.         while($ds = readdir($dirs)){
  11.             if( $ds != "." and $ds != ".." ){
  12.             $option[] = $ds;
  13.             }
  14.         }
  15.     }
  16. }
  17. sort($option);
  18. for($i=0; $i<count($option); $i++) {
  19. echo "<option value=\"$option[$i]\">$option[$i]</option>\r\n";
  20. } }
  21. ######


пробовал сам подправить код, но всё четно

PHP:
скопировать код в буфер обмена
  1. function directory() {
  2. $name = "../images/";
  3. $dir = opendir($name);
  4. chdir($name );
  5. while($d = readdir($dir)) {
  6.     if(is_dir($d) and $d != "." and $d != "..") {
  7.     $option[] = $d;
  8.     $dirs = opendir($d);
  9.         while($ds = readdir($dirs)){
  10.             if( $ds != "." and $ds != ".." ){
  11.             $option[] = $ds;
  12.             }
  13.         }
  14.     *****closedir($d);
  15.     *****$names = "../";
  16.     *****$dir = opendir($names);
  17.     }
  18. }
  19. sort($option);
  20. for($i=0; $i<count($option); $i++) {
  21. echo "<option value=\"$option[$i]\">$option[$i]</option>\r\n";
  22. } }
  23. ######
 
 Top
caballero
Отправлено: 29 Мая, 2013 - 20:01:41
Post Id


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


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


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




$directories = glob($name . '/*' , GLOB_ONLYDIR);

(Отредактировано автором: 29 Мая, 2013 - 20:02:39)



-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
Crate
Отправлено: 29 Мая, 2013 - 21:01:00
Post Id



Посетитель


Покинул форум
Сообщений всего: 312
Дата рег-ции: Янв. 2012  


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




Гуглите рекурсию и класс Filesystemiterator.
 
 Top
DelphinPRO
Отправлено: 29 Мая, 2013 - 21:07:50
Post Id



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


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


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




нахрен итератор? glob более чем достаточно для обхода дерева каталогов. вкупе с рекурсией - буквально пара-тройка строк кода.


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
Junes
Отправлено: 30 Мая, 2013 - 03:00:31
Post Id


Новичок


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


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




всем спасибо
 
 Top
Junes
Отправлено: 30 Мая, 2013 - 05:23:06
Post Id


Новичок


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


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




скажите, а как можно получить и сохранить путь к текущему каталогу, чтобы потом, допустим туда загрузить файл?

upd. сделал при помощи функций getcwd

(Отредактировано автором: 30 Мая, 2013 - 07:01:15)

 
 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