Насколько я поняла ошибка здесь либо в этой функции:
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() и рекурсия.