2013-07-14 4 views
0

Я хочу включить много файлов .php. Причина в том, что у меня есть 4 категории работы, которые нужно продемонстрировать.Включите все файлы PHP из каталога

Следующий код работает. Хотя, это в основном все, что я знаю о PHP. Я не уверен в написании PHP.

<?php 
if(!isset($_GET['page'])) $_GET['page']=""; 
switch($_GET['page']) { 

case "category_a": 
    include('site1.php'); 
    include('site2.php'); 
    include('site3.php'); 
    include('site4.php'); 
break; 
case "category_b": 
    include('site5.php'); 
    include('site6.php'); 
    include('site7.php'); 
    include('site8.php'); 
    include('site9.php'); 
    include('site10.php'); 
break; 

} 
?> 

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

Можно ли просто включить путь? : D Вот как я представляю решение:

case "category_a": 
    include('/directory/category_a'); 
break; 

Любая помощь очень ценится.

+2

уже спросил и ответил: http://stackoverflow.com/questions/599670/how-to-include-all-php-files-from-a-directory – Matanya

+0

Привет Matanya. Я ценю вашу помощь. Но, я прочитал этот вопрос несколько раз, прежде чем публиковать свой вопрос. Я просто не понимаю их решений. Что такое классы? У них нет случаев. Это, к сожалению, выше моего понимания. – Typetecture

+0

Ehem, мне, вероятно, удалось решить мою проблему, попробовав и скопируйте ошибку, вставив самый высокий проголосовавший код из связанного с вами вопроса в случайных местах. Кажется, это работает. Большая любовь. Пожалуйста, извините мою королевскую немоту. – Typetecture

ответ

0
function includeFilesFromDir ($dir_path, $file_extension, $recursive = false){ 
    if(!is_dir($dir_path)){ 
     return false; 
    } 
    if(empty($file_extension)){ 
     return false; 
    } 
    $all_dir_files = scandir($dir_path); 
    foreach($all_dir_files as $file){ 
     if($file == "." || $file == ".."){ 
      continue; 
     } 
     if(is_dir($dir_path . "/" . $file) && $recursive){ 
      includeFilesFromDir($dir_path . "/" . $file, $file_extension, $recursive); 
     } elseif($file_extension == pathinfo($file, PATHINFO_EXTENSION)){ 
      include($dir_path . "/" . $file); 
     } 

    } 

    return true; 
} 
includeFilesFromDir("C:/some_dir", "php", true); 
+0

Hi liding. Ваше решение работает тоже. Я не хочу украсть у вас больше времени. Просто у вас есть запасная минута: какие преимущества приносит вам очень сложное решение в сравнении с «более простым» кодом, который я опубликовал выше в качестве решения? В любом случае, большое спасибо. – Typetecture

+1

Это улучшает обслуживание! Вам не нужно делать include-step после добавления файла include в "include" -directory в будущем. Поэтому вы не можете забыть что-то включить. –

Смежные вопросы