Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.86/14: Рейтинг темы: голосов - 14, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 15.12.2011
Сообщений: 13
1

Список папок и файлов

12.11.2012, 19:07. Показов 2607. Ответов 5
Метки нет (Все метки)

Задача: сделать вывод папок и файлов в этих папках.
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?
$handle = opendir('.');
$i = 0;
print("Files: "."<br>");
while($file = readdir($handle))
{
    if((is_dir($file))&&($file!='.')&&($file!='..'))
    {
        $mas[$i] = $file; $i++;
        }
    }
closedir($handle);  
 
for($i = 0; $i < count($mas); $i++)
{
    $handle = opendir($mas[$i]);
    while($file = readdir($handle))
    {   
        if(is_dir($file)) { print("<img src=1.jpg>".$mas[$i]." - folder"."<br>"); }
        }
    closedir($handle);
    }
?>
В принципе, всё работает(код выложен не весь), но дублируются папки. Собственно вопрос, как убрать дублирующиеся папки?
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.11.2012, 19:07
Ответы с готовыми решениями:

Выводить список файлов, папок из директории
Здравствуйте, как выводить список папок в виде select.... Например у меня есть папка и внутри...

Вывести список папок, подпапок и файлов в них
Нужно вывести вот такую стркутуру: main ..папка1 ....подпапка1 ......файл1 ......файл2...

Вывести список файлов и папок в директории. is_file() не работает.
не работает код Надо чтоб вывело папки и файлы.Файлы просто, папки в квадратных скобках.(там...

Как удалить префикс у файлов, папок и функций внутри файлов массово
есть папка с файлами, папками на хостинге. Там повсюду есть префикс в названиях фалов, папок, а...

5
603 / 578 / 103
Регистрация: 16.07.2012
Сообщений: 1,762
12.11.2012, 19:19 2
PHP
1
2
3
4
if (file_exists('путь к папке'))
// значит папка уже есть
else 
//папки нет
0
0 / 0 / 1
Регистрация: 06.11.2012
Сообщений: 9
12.11.2012, 19:25 3
PHP
1
2
3
4
while($file = readdir($handle))
       {   
        if(is_dir($file)) { print("<img src=1.jpg>".$mas[$i]." - folder"."<br>"); }
        }
В $mas у вас лежат имена директорий, так что тут вместо $mas[$i] по логике вещей должно быть $file.
0
--\.founder./--
564 / 564 / 392
Регистрация: 20.10.2011
Сообщений: 867
12.11.2012, 19:33 4
лучше рекурсия.

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function read_dir($dir, $mark = '-') {
    $d = opendir($dir);
    while ($name = readdir($d)) {
        if ($name == '.' || $name == '..') {
            continue;
        }
        elseif (is_dir($dir.'/'.$name)) {             
            echo $mark.'<strong>'.$name.'</strong><br>'; 
            read_dir($dir.'/'.$name, $mark.$mark);
        }
        else
            echo $mark.$name.'<br>';
    }
}
 
read_dir('.');
0
0 / 0 / 0
Регистрация: 15.12.2011
Сообщений: 13
12.11.2012, 19:35  [ТС] 5
Цитата Сообщение от Its_me Посмотреть сообщение
PHP
1
2
3
4
while($file = readdir($handle))
       {   
        if(is_dir($file)) { print("<img src=1.jpg>".$mas[$i]." - folder"."<br>"); }
        }
В $mas у вас лежат имена директорий, так что тут вместо $mas[$i] по логике вещей должно быть $file.
Тут всё ок, при замене mas на file вместо названий папок будут точки.

Цитата Сообщение от alpex Посмотреть сообщение
PHP
1
2
3
4
if (file_exists('путь к папке'))
// значит папка уже есть
else 
//папки нет
Это проверка на наличие файла, а как удалить то?

Добавлено через 1 минуту
Цитата Сообщение от WebMax 2.0 Посмотреть сообщение
лучше рекурсия.

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function read_dir($dir, $mark = '-') {
    $d = opendir($dir);
    while ($name = readdir($d)) {
        if ($name == '.' || $name == '..') {
            continue;
        }
        elseif (is_dir($name)) {              
            echo $mark.'<strong>'.$name.'</strong><br>'; 
            read_dir($name, $mark.$mark.$mark.$mark);
        }
        else
            echo $mark.$name.'<br>';
    }
}
 
read_dir('.');
За функцию спасибо, но хотелось бы с этим разобраться.)
0
--\.founder./--
564 / 564 / 392
Регистрация: 20.10.2011
Сообщений: 867
12.11.2012, 19:38 6
Цитата Сообщение от watercolor Посмотреть сообщение
За функцию спасибо, но хотелось бы с этим разобраться.)
Скопируй ещё раз, немного исправил.
Рекурсия - функция вызывает саму себя, т.е. если текущий файл - директория, то передаем её опять же в эту функцию и обрабатываем. Так мы залазием в каждую папку и выводим все файлы.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.11.2012, 19:38

Список файлов и папок
Столкнулся с проблемой что данная система не выводит файлы в самой папке, то есть если в папке...

Список файлов и папок на глубину 2
Как организовать получение списка папок и файлов на глубину 1. В итоге должен быть примерно такой...

Список измененных файлов и папок
Написать скрипт, который будет мониторить все изменения сделанные под пользователем(создал...

Получаем список файлов и папок
Господа, Форумчане! Хочу получить список файлов и папок допусти моей флешки (раздел G:\) вот код,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.