Автор Тема: Вывод списка папок  (Прочитано 4232 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Berkut

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 98
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Вывод списка папок
« : 11 Февраля 2004, 01:09:52 »
Привет всем!Затеял сделать что-то типа файлового менеджера.Нужно вывести список всех папок(в т.ч. и всех вложенных) начиная с "корневой" папки.Попутно не выводить папки,в которых содержаться отмеченные файлы- $fl[]  И вот что я напортачил:

function tree($vspomogat){
global 
$vspomogat;      #имя корневой папки
global $fl;                    #отмеченные файлы
$hdl=opendir($vspomogat);
while (
$file=readdir($hdl))  {
        if ( (
$file!=".")&&($file!="..") )     {
                
$fllnm=$vspomogat."/".$file;
                if (
is_dir($fllnm)==True)   {
                        
$no=0;
                        foreach (
$fl as $i)   {
                                if (
$fllnm==$vspomogat."/".$i)  {
                                        
$no=1;
                                        }
                                      }
if (
$no==0)  {
        if (
$fllnm!=$vspomogat)  {
                echo (
"<input type=radio name=rd value=$fllnm>$fllnm
"
);
                }
                
tree ($fllnm);
             }
             }  }  }
             
closedir($hdl);
             }

if (isset(
$_POST[\'copy\'])){
           $begin="files";
            echo ("Копировать?
");
    foreach ($fl as $i)  {
echo ("<input type=hidden name=fl[] value=$i>$i папки $fold
");
}
echo ("
Выбери куда копировать:
");
tree ($begin);
if ($begin!=$vspomogat)
   {   echo ("<input type=radio name=rd value=$begin>$begin
"); }
echo ("<input type=submit value=скопировать name=copy>");
         }
 


Так вот,если файл находиться в самой последней вложеной папке - то выдаёт только первую(корневую) папку. В противном случае непрерывно выдаёт только папку, находящуюся в папке где лежит файл,и всё это в бесконечном цикле.Через 2 секунды страница "вылетает" Cannot find server.Долго туплю,но немогу найти ошибку.

Оффлайн Berkut

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 98
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Вывод списка папок
« Ответ #1 : 11 Февраля 2004, 01:13:58 »
Там у меня путаница большая
$vspomogat===$begin   -т.е. это одно и тоже,корневая папка files

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Вывод списка папок
« Ответ #2 : 11 Февраля 2004, 01:49:59 »
тебе не приходило в голову, до того, как ты научишься выводить хотя бы голый список, не обвешивать свой скрипт всякими фентифлюшечками?
Тогда бы, глядишь - и и тупил бы меньше.
в 5 строчках простора тупить меньше, чем в 50.

Ну, а если бы ты слышал такое слово, как "отладка", то и вообще не тупил бы.

сейчас я тебе открою сокровенное знание.
В мире НЕТ программистов ,которые пишут код как художники на арбате - сел, наваял, отдал.
Нету. И не будет.

Писать программы - десткий лепет.
Настоящая работа - искать ошибки.
Отлаживать свою программу.
Это осмысленные действие, противоположные твоему "тупить".
правда, у них есь одно ограничение.
Надо знать, что делат твоя программа.
Вот у меня рядом есть клиент - так ему отладка не поможет.

Ну, а если понимаешь, то УБЕДИСЬ - а работает ли программа, как надо?
Вот у тебя там в циклах шуршат переменные. А чему они там равны - ты знаешь?
А вывести на экран - не догадался?
может, тогда, и тупить менбше придется, когда программа тебе сама напишет - ВОТ ЗДЕСЬ неполадка!?

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Вывод списка папок
« Ответ #3 : 11 Февраля 2004, 01:52:33 »
а точнее - сам увидишь.
переменная-то должна быть равна тому-то, а она равна другому-то.
вот тут она присваивается... здесь ошибка.

все свелось к ОДНОЙ строчке, родной.

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Вывод списка папок
« Ответ #4 : 11 Февраля 2004, 01:54:39 »
еще, очень помогают понять логику программы так так называемые отступы.
Некоторые ошибочно принимают их за украшение и расставляют как попало.
и очень красиов смотрятся три кокетливые скобочки в ряд.

А уж к каким болкам кода они относятся - это пусть дядя на форуме думает, правда?

Оффлайн Million

  • Super hero
  • Постоялец
  • ***
  • Сообщений: 185
  • +0/-0
  • 2
    • Просмотр профиля
Вывод списка папок
« Ответ #5 : 11 Февраля 2004, 09:20:10 »
RomikChef
Ну ты прям загрузил по полной программе:)

Оффлайн CGVictor

  • теперь местный
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2511
  • +0/-0
  • 2
    • Просмотр профиля
    • http://cg.net.ru
Вывод списка папок
« Ответ #6 : 11 Февраля 2004, 13:22:12 »
Цитировать
Berkut:
Долго туплю,но немогу найти ошибку.

Цитировать
Berkut:
Там у меня путаница большая

Цитировать
RomikChef:
тебе не приходило в голову, до того, как ты научишься выводить хотя бы голый список, не обвешивать свой скрипт всякими фентифлюшечками?
Тогда бы, глядишь - и и тупил бы меньше.


RomikChef - absolutely right (100%)
Berkut
попробую подсказать... Ближе к "центру" твоего кода есть небольшой глюк... Последуй совету Ромика.
LJ: Backslashed life (rss)

Оффлайн Berkut

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 98
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Вывод списка папок
« Ответ #7 : 13 Февраля 2004, 02:02:04 »
2 вечра бьюсь над этой функцией,единственное что сделал-это покончил с бесконечным выводом одной и той-же папки.Ромик,ну будь человечнее,скажи конкретно где ошибка,ты ведь её уже нашёл.

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Вывод списка папок
« Ответ #8 : 13 Февраля 2004, 14:04:49 »
Я?!
с чего ты взял?
какие у людей странные фантазии.
с чего ты взял, что я ее вообще искал?
А тем более нашел? Что я по-твоему- волшебник?
Или мне делать нечего совсем?

Для того, тобы узнать, надо сделать все, что я тебе так подробно описал.
Но с какой стати я буду делать это за тебя?!
мне этот урод монстроидальный даром не нужен

Но, главное, что эту работу все равно надо проделать.
упростить код. Ты сам это великолепно можешь сделать.
было бы желание.

То, что я тебе сказал, можно сделать не за два вечера, а за один час.
вывести эхом все переменные и разобраться.
вон, в соседнем топике с похожей проблемой человек не поленился и разобрал свой код по кусочкам и нашел ошибку.
Ему, значит, надо было.

А тунеядствовать на форуме не надо.

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28