2013-07-14 90 views
0

我想包含很多.php文件。理由是我有四類需要展示的作品。包含目錄中的所有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

你好。你的解決方案也可以。我不想再偷你的時間了。只需要有空餘的時間:與我上面作爲解決方案發布的「簡單」代碼相比,您非常精心製作的解決方案帶來了什麼好處?無論如何,非常感謝。 – Typetecture

+1

它增加了更好的維護!在將include文件添加到「includes」目錄後,您不需要執行include-step。所以你不能忘記包括一些東西。 –

相關問題