Вы можете использовать readdir()
или scandir()
, чтобы получить содержимое каждого каталога (то есть имена файлов). Используйте is_dir()
, чтобы проверить, является ли найденный элемент файлом или каталогом. Если это каталог, повторите процесс для этого каталога. Если это файл, проверьте, является ли он 'index.html', и если да, вставьте в массив.
Возможно, лучше хранить имена файлов (включая пути) в массиве, а не в содержимом. В последнем случае все 250 файлов будут считываться при каждом запросе.
Обход каталога может быть достаточно проблематичным, поэтому лучше также кэшировать этот список.
Вы можете сохранить массив путей в файл. Затем вы можете загрузить этот файл в массив, что быстрее, чем проверка всех этих каталогов. Если файл не существует, вы можете запустить процедуру для его создания. Если он существует, вы можете проверить, является ли он старше, скажем, одного дня (или того, что вам больше подходит). Если какой-либо из файлов index.html не существует, вы также можете запустить процесс создания файла, поскольку он, очевидно, больше не обновляется.
Если вы сохраните этот массив как код PHP, вы можете включить его. Это даст вам еще большую производительность, если вы получите кеш PHP, такой как APC.