PHP – Итерация через папки и отображение содержимого HTML

В настоящее время я пытаюсь разработать метод, чтобы получить обзор всех моих различных веб-шаблонов, которые я создал и (юридически) загрузил с годами. Я думал о их отображении, так как WordPress просматривает свои шаблоны с помощью небольшого окна предварительного просмотра, отображая конкретный файл со стилями и всем остальным.

Как разделить их на строки и столбцы и создать окно мода Ajax, открытое для предварительного просмотра и разбивки на страницы и так далее?

Я считаю, что могу справиться, но сама концепция заключается в повторении нескольких папок, а затем поиске всех страниц index.htm и index.html и их отображении.

Я не очень много работал с каталогами в PHP, и единственные ссылки и кодовые пни, которые я нашел до сих пор, – это просто список всех файлов в определенном каталоге, например, что он содержит.

Есть ли сценарий, функция, фрагмент или просто некоторая информация для создания такой (возможно простой) функции предварительного просмотра?

glob('*.html') будет работать, если все они находятся в одном каталоге.

Если вы хотите пройти дерево файлов – проверка всего в текущем каталоге, а также в подкаталогах и подкаталогах подкаталогов (и т. Д.) – тогда у вас есть несколько вариантов.

Можно было бы использовать команду unix find с одним из методов вызова системы PHP. Что-то вроде:

find <search_root_dir> -name "*.html" -print

вы получите результат, который выглядит примерно так:

 search_root_dir/blah.html search_root_dir/foo.html search_root_dir/subdir/baz.html search_root_dir/subdir/bah.html ... 

Еще одна вещь, которую вы могли бы сделать, это написать рекурсивную функцию, которая использует chdir и readdir или, может быть, scandir , что-то вроде:

 function dir_walk($start_dir,$func) { $entries = scandir($start_dir); foreach($entries as $entry) { if($entry == '.' || $entry == '..') { /*skip these*/ } else if(is_dir($entry)) { dir_walk($start_dir.'/'.$entry,$func); } else $func($start_dir.'/'.$entry); } } 

Затем напишите еще одну функцию:

 $html_files = array(); function record_html_files($filename) { global $html_files; if(strpos($filename,'*.html') === (strlen($filename) - 6)) $html_files[] = $filename; } 

И назовите это так:

  dir_walk ( '/ путь / к / поиск / корень', 'record_html_files');

Или напишите dir_walk, чтобы он принял объект с вызовом метода, который вы можете сделать внутри. Здесь возможны некоторые варианты.