Intereting Posts
Поиск с полным именем вместо имени или фамилии Белое пространство появляется ниже липкого нижнего колонтитула, только в PHP вызывать скрипт php для каждой строки в моей базе данных mysql Как создать массив вставки пакета Codeigniter PHP file_get_contents очень медленный при использовании полного URL-адреса Как определить маршрут Laravel с параметром, который содержит символ косой черты Допустимый размер памяти 268435456 байт исчерпан Как предотвратить автоматический выход из системы в кодеринговом? Какой самый элегантный способ перестроить ассоциативный массив? Извлечение данных из двух таблиц. изображения не работают PHP-код может вставить изображение в файл excel и правильно его открыть в MS Excel? PHP glob () в скобках Есть ли способ получить размер переменной PHP в байтах? Изменить имя файла на uniqid в PHP PHP-SQL: загруженное изображение, отображаемое как нежелательный текст

Поиск определенных расширений файлов в папке / каталоге (PHP)

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

glob довольно легко:

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

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

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

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

http://php.net/manual/en/function.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; } 

Вышеизложенное, очевидно, нужно будет настроить, чтобы заставить его работать, но, надеюсь, вы получите эту идею (помните, что не следует следовать ссылкам каталога на «..» или «.», Или вы будете в бесконечном городе петли).