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]   

> Без описания
SkaN
Отправлено: 18 Марта, 2011 - 10:10:20
Post Id



Гость


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


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




PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $usr = chdir(phpmyadmin/);
  3. if ($usr == false) {echo "Хрен"};
  4. opendir($usr);
  5. function tree(&$usr) {
  6.         if (is_file(readdir($usr))) {return --readdir($usr)};
  7.         elseif (is_dir(readdir($usr))) {return --tree(readdir($usr)};
  8.         else {break};
  9. }
  10. echo tree($usr);
  11. ?>

Код, сделанный по заданию из уроков с этого же сайта. Должен выводит дерево файлов, однако он не выводит ничего... и судя по всему он мне даже папку нужную не открывает (должен, если не получается открыть, писать "Хрен", но не пишет). Может кто-нибудь подскажет, где я ошибся...
 
 Top
OrmaJever
Отправлено: 18 Марта, 2011 - 12:57:13
Post Id



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


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


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




а так?


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
SkaN
Отправлено: 18 Марта, 2011 - 13:19:56
Post Id



Гость


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


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




все равно не работает...
 
 Top
Мелкий Супермодератор
Отправлено: 18 Марта, 2011 - 13:20:26
Post Id



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


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


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




Я, если честно, вообще не понимаю, как этот код может выводить что-то внятное.
Вы явно не поняли назначения используемых функций.

рекурсивное дерево файлов строится как-то так:
PHP:
скопировать код в буфер обмена
  1. function fstree($dir=".") {
  2.         echo "run: ",$dir,'<br>';
  3. if (is_dir($dir)) {
  4.     //немного разметки
  5.     echo $dir,":<br><ul>";
  6.     if ($dh = opendir($dir)) {
  7.         while (($file = readdir($dh)) !== false) {
  8.             if ($file=='..' || $file=='.') continue;
  9.             echo "<li>";
  10.             echo is_dir($dir.'/'.$file)?'true':'false';
  11.             if (is_dir($dir.'/'.$file)) fstree($dir."/".$file); //уходим в рекурсию; честно, не помню, надо ли / вставлять, вроде надо
  12.             //а здесь выводим файлы директории
  13.             else echo $file,PHP_EOL;
  14.             echo "</li>";
  15.         }
  16.         closedir($dh);
  17.     }
  18.     echo "</ul>";
  19. }
  20. }
  21. fstree("web");


-----
PostgreSQL DBA
 
 Top
SkaN
Отправлено: 18 Марта, 2011 - 13:33:21
Post Id



Гость


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


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




мда,я много еще не понимаю_) спасибо,буду сейчас разбирать ваш код Закатив глазки
 
 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