0 / 0 / 0
Регистрация: 31.05.2016
Сообщений: 126
1

Сортировка папок и файлов

17.04.2018, 22:24. Показов 2293. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Скрипт работает отлично до того момента. когда нужно отсканировать второй уровень папки... это в последнем эхе с тремя звездочками...


PHP
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
29
30
31
32
33
34
35
$put = '/page';
$dir   = $main_dw[0].'main_dw'.$put;
$handle = opendir($dir);
$find_file = array();
while (false !== ($file = readdir($handle))) { 
 
    if ($file != "." && $file != ".." ) 
    { 
     //echo "$file\n<br>";  
    $find_file[] = $file;
    } 
}
 
sort($find_file);
 
for ($w=0; $w < count($find_file) ; $w++) 
{  
    $handle = opendir($dir.'/'.$find_file[$w]);
    echo '<h2>'.$find_file[$w].'</h2>'  ; 
    while (false !== ($file = readdir($handle))) 
    { 
 
        if ($file != "." && $file != ".." ) 
        { 
            if(@substr_count($file, '.html'))
            {
            echo "$file\n<br>";  
            }
            else
            {
                echo "***$file\n<br>";  //здесь проблема
            }
        } 
    }   
}
В чем проблема!?
Что папку выдает в списке хаотично
т.е. либо в начале. либо в середине, а надо, чтобы выдавал в списке последним...
Никак не могу понять, как сделать...
Пример:
В середине:

Рубрика - hosting:
001_domen_i_hosting_dlya_sayta.html
***ruweb.net
004_besplatnyiy_hosting.html

в начале...

Рубрика - php:
***url
001_php_yazyik_programirovaniya.html
002_echo_php.html
003_sozdat_prisvoit_peremennuyu_php.html

Заранее всем спасибо!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.04.2018, 22:24
Ответы с готовыми решениями:

Подсчет папок и файлов
Подскажите какой есть лучший способ подсчитать сколько папок в нужной директории и файлов в них?

Список папок и файлов
Задача: сделать вывод папок и файлов в этих папках. &lt;? $handle = opendir('.'); $i = 0;...

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

Рекурсивный просмотр папок и файлов
Почему этот код при нахождении поддиректории в данной папке не хочет заходить рекурсивно в...

4
295 / 244 / 128
Регистрация: 24.12.2014
Сообщений: 708
17.04.2018, 23:24 2
Как вариант:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
$directory = "абсолютный путь к папке";
 
// сначала все php-файлы
foreach( glob( $directory . "*.php" ) as $filePath ) {
    $split = explode( "/", $filePath );
    echo $split[ count( $split ) - 1 ]; // выводим имя файла
}
 
// далее все html-файлы
foreach( glob( $directory . "*.html" ) as $filePath ) {
    $split = explode( "/", $filePath );
    echo $split[ count( $split ) - 1 ]; // выводим имя файла
}
Это уже можете переработать для своих нужд. Посмотрите справку о glob(), чтобы подстроить под Ваш вариант.
0
0 / 0 / 0
Регистрация: 31.05.2016
Сообщений: 126
18.04.2018, 00:15  [ТС] 3
Вы не поняли... php здесь не файлы - php - это папка - рубрика... и вы описали первый уровень папки - это все уже сделано ... во втором уровне папки проблема, потому, что это все находится внутри цикла... и выводит не в том порядке... в каком хотелось бы...
Выводит папку , а потом надо еще раз в нее зайти и получается, что в анонсированной рубрике выводится либо сначала - другая рубрика либо в середине...

Добавлено через 45 минут
Решение такое


PHP
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
$put = '/page';
$dir   = $main_dw[0].'main_dw'.$put;
$handle = opendir($dir);
$find_file = array();
while (false !== ($file = readdir($handle))) { 
 
    if ($file != "." && $file != ".." && $file != "__test" && $file != "info") 
    { 
     //echo "$file\n<br>";  
    $find_file[] = $file;
    } 
}
 
sort($find_file);
 
for ($w=0; $w < count($find_file) ; $w++) 
{  
    $handle = opendir($dir.'/'.$find_file[$w]);
    echo '<h2>'.$find_file[$w].'</h2>'; 
 
    $end = array();
 
    while (false !== ($file = readdir($handle))) 
    { 
        
        if ($file != "." && $file != ".." ) 
        { 
            if(@substr_count($file, '.html'))
            {
            echo "$file\n<br>";  
            }
            else
            {
                $end[] = $file;  
            }
        } 
    }
 
    for ($w_1=0; $w_1 < count($end) ; $w_1++) 
    {
        $handle_2 = opendir($dir.'/'.$find_file[$w].'/'.$end[$w_1]);
        echo '<h2>'.$end[$w_1].' в '.$find_file[$w].'</h2>'  ; 
        while (false !== ($file = readdir($handle_2))) 
        { 
            if ($file != "." && $file != ".."  ) 
            { 
                if(@substr_count($file, '.html'))
                {
                echo "$file\n<br>";  
                }
            } 
        } 
    } 
}
0
91 / 91 / 13
Регистрация: 14.07.2012
Сообщений: 539
18.04.2018, 10:25 4
Сортировку массива перед выводом не пробовали делать?
asort()
arsort()
0
0 / 0 / 0
Регистрация: 31.05.2016
Сообщений: 126
18.04.2018, 10:32  [ТС] 5
Решение найдено : Сортировка папок и файлов
0
18.04.2018, 10:32
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.04.2018, 10:32
Помогаю со студенческими работами здесь

Скрипт на сканирование файлов и папок
Здравствуйте. Нашел шаблон с php скриптом который считывает в корне сайта папку files. Сайт лежит у...

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

Права папок и файлов при загрузке
Приветствую! Подскажите как правильно подправить код, чтобы нормальные права ставил на файлы и...

Вывести имена файлов и папок в директории
Стоит такая задача: Через Get запрос передаётся имя директории. Необходимо вывести все файлы и...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru