PHP вывод файлов и каталогов директории

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

Сегодня saitsozdanie.ru рассмотрит несколько способов:

1 способ) Выводим только файлы с расширением php (например)
  

$filelist = glob("*.php");
    foreach ($filelist as $filename){
        echo $filename." и его размер: ".filesize($filename)." байт <br>";
}

Также можно вывести файлы любого расширения txt например и тд. Дело в том, что функция glob() - предназначена для вывода по шаблону. (Если поставить так me* - то будут выводиться все файлы начинающиеся на "me")

2 способ) Выводим все файлы в данной папке:

$path = ".";
    $filelist = array();

    if($handle = opendir($path)){
        while($entry = readdir($handle)){
            echo $entry."<br>";
        }
      
        closedir($handle);
    }

Тут мы используем функции opendir(), для открытия файла...далее можно сразу использовать функцию readdir(), которая шаг за шагом будет считывать по одному файлу и наполнять наш массивчик $filelist, и в конце закрываем открытую папочку с помощью функции closedir(). Если в $path = "." вместо точки поставить files - то будут считываться все файлы из папки по имени files.

3 способ) Задействуем функцию scandir()

Функция scandir() - принимает лишь путь или место, где нужно искать и получает массив с данными, который перебрав можно получить файлы и папки в алфавитном порядке. scandir(".") - будет искать в той же категории, что и сам исполняемый файл.

$path = scandir("files");

    foreach($path as $k){
            echo $k."<br>";
}

 

4 способ) использование функции с задействованием цикла for

function nav($dir){
   if(is_dir($dir)){
        $files = scandir($dir);
        array_shift($files); // удаляем из массива '.'
        array_shift($files); // удаляем из массива '..'

        for($i=0; $i<sizeof($files); $i++){
            $len = $files[$i];
            echo $len."<br>";
        }
   }
}
    
    $dir = "files";
    nav($dir); 

5способ) Ну и напоследок самый верный по мнению многих профессионалов способ для чтения каталога на php:

$dir = "files";
    if($handle = opendir($dir)){

        while(false !== ($file = readdir($handle))) {
            if($file != "." && $file != ".."){
            echo $file."<br>";
        }
    }
}

Какой вам проще выбирайте.

 

 

Смотрите также:

Комментарии   

-1 # Влад 17.09.2017 02:48
День добрый. Я попробовал 5-й способ, все работает. Но мне нужно чтобы искались файлы в папке только по маске! Например маска будет test, чтобы на экран выводились все файлы, начинающиеся с букв test
Спасибо
Ответить | Ответить с цитатой | Цитировать
+3 # Andre 17.10.2018 06:31
Отлично изложено. Доступно и без текстового мусора
Ответить | Ответить с цитатой | Цитировать

Добавить комментарий


Защитный код
Обновить

Вы здесь: Сайтостроение Создание сайта PHP PHP вывод файлов и каталогов директории