Я пытаюсь создать программу на PHP, которая позволит мне находить файлы с определенными расширениями файлов (пример .jpg, .shp и т. Д.) В известном каталоге, который состоит из нескольких папок. Образец кода, документация или информация о том, какие методы мне потребуются, будут высоко оценены.
glob
довольно легко:
<?php foreach (glob("*.txt") as $filename) { echo "$filename size " . filesize($filename) . "\n"; } ?>
Есть несколько предложений для рекурсивного спуска на странице readdir
.
Взгляните на SPL DirectoryIterator PHP.
Я считаю, что функция glob () PHP – это именно то, что вы ищете:
Используйте readdir
для получения списка файлов, а fnmatch
для разработки, если он соответствует вашему шаблону имени файла. Сделайте все это внутри функции и вызовите свою функцию, когда найдете каталоги. Задайте другой вопрос, если вы застряли в реализации этого (или комментарий, если вы действительно не знаете, с чего начать).
Вот хороший учебник, который проведет вас через шаги. Второе сообщение предоставляет вам класс, который расширяет функцию поиска, чтобы взять ключевое слово.
Надеюсь, это хорошая отправная точка в том, что вы ищете.
glob
доставит вам все файлы в заданном каталоге, но не в подкаталоги. Если вам это нужно, вам нужно: 10. получить рекурсивный, 20. goto 10.
Вот псевдо псевдокод:
function getFiles($pattern, $dir) { $files = glob($dir . $pattern); $folders = glob($dir, GLOB_ONLYDIR); foreach ($folders as $folder) { $files = $files + getFiles($folder); } return $files; }
Вышеизложенное, очевидно, нужно будет настроить, чтобы заставить его работать, но, надеюсь, вы получите эту идею (помните, что не следует следовать ссылкам каталога на «..» или «.», Или вы будете в бесконечном городе петли).