PHP - прочитать количество каталогов, а затем потребовать для каждого указанного имени файла - PullRequest
0 голосов
/ 26 марта 2010

Я хочу сделать небольшой скрипт, но я скорее n00b в php, поэтому, пожалуйста, помогите мне, если сможете:)

То, что я хочу, чтобы скрипт сделал:

  1. У меня есть "index.php".
  2. Я хочу, чтобы "index.php" читал подкаталоги из известной папки, скажем, "templates /"
  3. Каждый подкаталог будет содержать файл с именем «content.html».
  4. Индекс затем загрузит «content.html» с функцией require () для каждого из существующих подкаталогов.

Большое спасибо за помощь!

Ответы [ 2 ]

4 голосов
/ 26 марта 2010

RecursiveDirectoryIterator проходит через назначенный каталог и все подкаталоги и возвращает все элементы файловой системы как SplFileInfo объекты:

$iterator = new RecursiveIteratorIterator(
                new RecursiveDirectoryIterator($yourFilePath));

foreach($iterator as $file) {
    if($file->getFilename() === 'content.html') {
        $file->openFile()->fpassthru();
        // or 
        include $file->getRealpath();
    }
}

Используйте include, если вы хотите запустить файл .html через анализатор PHP, например когда он содержит код PHP, который должен быть оценен. Если нет, используйте fpassthru, потому что это должно быть намного быстрее. Можно также использовать readfile($file->getRealpath()).

0 голосов
/ 26 марта 2010

чего вы хотите достичь?

Хотите ли вы содержимое различных файлов в вашем index.php или хотите создать ссылку на эти файлы?

Поскольку, если вы хотите агрегировать контент, этого подхода недостаточно, поскольку вы получаете html-файл с неверным синтаксисом, потому что вы просто объединяете содержимое html-файлов.

Вам потребуется дополнительный анализ содержимого, чтобы избежать этого.

Приветствия

Давит

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...