PHP - Прочетете броя на директориите и след това изисквайте за всеки посочен файл

Искам да направя малък скрипт, но съм по-скоро n00b в php, така че моля, помогнете ми, ако можете :)

Това, което искам скриптът да прави е:

  1. Имам "index.php".
  2. Искам "index.php" да чете поддиректориите от известна папка, да кажем "templates/"
  3. Всяка поддиректория ще съдържа файл, наречен "content.html".
  4. След това индексът ще зареди "content.html" с функцията require() за всяка от съществуващите поддиректории.

Благодаря ви много за вашата помощ!


person Adrian M.    schedule 26.03.2010    source източник


Отговори (2)


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()).

person Gordon    schedule 26.03.2010

какво искаш да постигнеш

Искате ли съдържанието на различните файлове във вашия index.php или искате да генерирате връзка към тези файлове?

Защото, ако искате да обедините съдържанието, този подход не е достатъчен, защото получавате html файл с невалиден синтаксис, защото просто свързвате съдържанието на html файловете.

Ще ви е необходим допълнителен анализ на съдържанието, за да избегнете това.

наздраве,

Дауит

person Community    schedule 26.03.2010
comment
Всяка поддиректория ще бъде продукт, така че искам индексът да проверява при всяко зареждане дали има нещо ново в тази папка. файлът content.html или файлът content.php във всяка поддиректория ще съдържа някакъв html код за текст/изображения (описанието на този продукт). Всички продукти ще бъдат показани в колона на първата страница (index.php) Знам, че има по-добри начини и скриптове за пазаруване, но това е моят начин :) - person Adrian M.; 26.03.2010
comment
Просто се чудех дали content.html е пълноправен html файл, но ако съдържа само фрагменти от html или php, тогава конкатенирането ще доведе до желания резултат. - person ; 26.03.2010
comment
само фрагмент (таблица или div) - person Adrian M.; 26.03.2010