包括目录中的所有PHP文件

时间:2013-07-14 13:23:57

标签: php include

我想要包含很多.php文件。理由是我有4类需要展示的工作。

以下代码有效。虽然,它基本上是我所知道的关于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;

非常感谢任何帮助。

1 个答案:

答案 0 :(得分: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);