Поиск конкретных расширений файлов в папке / каталоге (PHP) - PullRequest
4 голосов
/ 30 ноября 2009

Я пытаюсь разработать программу на PHP, которая позволила бы мне находить файлы с определенными расширениями (например, .jpg, .shp и т. Д.) В известном каталоге, который состоит из нескольких папок. Будем весьма благодарны за пример кода, документацию или информацию о том, какие методы мне понадобятся.

Ответы [ 5 ]

11 голосов
/ 30 ноября 2009

glob довольно просто:

<?php
foreach (glob("*.txt") as $filename) {
    echo "$filename size " . filesize($filename) . "\n";
}
?>

Есть несколько предложений для рекурсивного спуска на странице readdir .

6 голосов
/ 30 ноября 2009

Взгляните на PHP SPL DirectoryIterator .

2 голосов
/ 30 ноября 2009

Я считаю, что PHP-функция glob () - это именно то, что вы ищете:

http://php.net/manual/en/function.glob.php

0 голосов
/ 30 ноября 2009

glob даст вам все файлы в данном каталоге, но не в подкаталогах. Если вам это тоже нужно, вам нужно: 10. получить рекурсивный способ, 20. перейти к 10.

Вот псевдопсевдокод:

function getFiles($pattern, $dir) {
    $files = glob($dir . $pattern);
    $folders = glob($dir, GLOB_ONLYDIR);
    foreach ($folders as $folder) {
        $files = $files + getFiles($folder);
    }
    return $files;
}

Вышеприведенное, очевидно, нужно будет настроить, чтобы оно заработало, но, надеюсь, вы поймете эту идею (не забудьте не переходить по ссылкам каталога на ".." или ".", Иначе вы окажетесь в городе с бесконечным циклом). 1007 *

0 голосов
/ 30 ноября 2009

Используйте readdir, чтобы получить список файлов, и fnmatch, чтобы выяснить, соответствует ли оно вашему шаблону имени файла. Делайте все это внутри функции и вызывайте ее, когда вы найдете каталоги. Задайте другой вопрос, если вы застряли при реализации (или прокомментируйте, если вы действительно не знаете, с чего начать).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...