[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Файл менеджер из учебника
Veronika2010
Работает практически полностью, по крайней мере если включить Регистер_Глобалс. Не работает только построение дерева каталогов при копировании. Вы меня простите, может это и глупый вопрос, но я только в октябре первый раз попробовала программировать.


Насколько я поняла ошибка здесь либо в этой функции:
PHP код:



function tree($fld)
{
global $folder;
global $fl;
$hdl=opendir($folder);
while ($file = readdir($hdl))
{ if (($file!=".")&&($file!=".."))
{ $fllnm=$fld."/".$file;
if (is_dir($fllnm)==True)
{ $no=0;
foreach ($fl as $i)
{ if ($fllnm==$folder."/".$i)
{
$no=l;
}
}

if ($no==0)
{
if ($fllnm!=$folder)
{
echo ("<input name=rd type=radio value=$fllnm>$fllnm<br>");
}
tree ($fllnm);
}
}
}
}

closedir($hdl);
}

либо в том как ее вызываю.
PHP код:


echo ("<br>Выберите папку для копирования:<br>");
tree($begin);
if ($begin!=$folder)
{
echo ("<input name=rd type=radio value=$begin>$begin<br>");
}
echo ("<input type=submit value=\"Скопировать\" name=copy>");



Вот так вроде локализовала))


Получается что эта функция выводит не все подкаталоги а по 1-2 для каждой папки, т.е. у меня есть папка админ. Вней есть 6 подкаталогов, а эта функция выводит только 1 подкаталог. Следущая папка в корне Блокс в ней 5 подкаталогов, а фунция выводит 2. и т.д.



Спустя 2 часа, 2 минуты, 42 секунды (5.12.2010 - 06:48) vital написал(а):
юзайте glob() и не парьтесь.

Спустя 5 минут, 59 секунд (5.12.2010 - 06:54) vital написал(а):
т.е. примерно так
$file_list =glob('PATH/*.*');
foreach ($file_list_en as $n =>$value)
{
if (is_file($value))..
else if(is_dir($value))..
}

Спустя 6 часов, 17 минут, 10 секунд (5.12.2010 - 13:12) Veronika2010 написал(а):
так оно выводит только содержимое той папки в которой я нахожусь, а мне надо чтобы были показаны также все подкаталоги всех каталогов.
Простите за мои "блондинчиковые" вопросы, но я действительно не понимаю..

Спустя 43 минуты, 30 секунд (5.12.2010 - 13:55) vital написал(а):
Цитата
а мне надо чтобы были показаны также все подкаталоги всех каталогов.

Про рекурсию слышали?


function getlist($path)
$file_list =glob($path);
foreach ($file_list_en as $n =>$value)
{
if (is_file($value))..
else if(is_dir($value)) {getlist($path.DIRECTORY_SEPARATOR.$value)}
}


Не хотите рекурсией, попробуйте как-нить так
function scandir_through($dir)
{
$items = glob($dir . '/*');

for ($i = 0; $i < count($items); $i++) {
if (is_dir($items[$i])) {
$add = glob($items[$i] . '/*');
$items = array_merge($items, $add);
}
}


return $items;
}

Скажите, вы уверенеы, что вам надо программировать?

Спустя 7 минут, 31 секунда (5.12.2010 - 14:03) linker написал(а):
glob() предназначена для шаблонного поиска файлов в папках. scandir() и рекурсия.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.