В настоящее время я пытаюсь разработать метод, чтобы получить обзор всех моих различных веб-шаблонов, которые я создал и (юридически) загрузил с годами. Я думал о их отображении, так как 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, чтобы он принял объект с вызовом метода, который вы можете сделать внутри. Здесь возможны некоторые варианты.