【问题标题】:Include all PHP files from a directory [duplicate]包括目录中的所有PHP文件[重复]
【发布时间】:2013-07-12 11:08:21
【问题描述】:

我想包含很多 .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;

非常感谢任何帮助。

【问题讨论】:

  • 已经提问并回答:stackoverflow.com/questions/599670/…
  • 嗨,马坦亚。我感谢您的帮助。但是,在发布我的问题之前,我多次阅读了这个问题。我只是不明白他们的解决方案。什么是类?他们没有案例。可悲的是,这超出了我的理解范围。
  • Ehem,我可能通过尝试和错误复制粘贴随机位置链接问题中投票最高的代码来解决我的问题。它似乎工作。非常喜欢。请原谅我的愚蠢。
  • 请在下面的答案部分输入your answer
  • 感谢您的耐心等待。我会在我认为合适的时候这样做。

标签: php include


【解决方案1】:
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);

【讨论】:

  • 您好。您的解决方案也有效。我不想再偷你的时间了。以防万一您有空闲时间:与我在上面作为解决方案发布的“更简单”的代码相比,您非常精细的解决方案带来了哪些优势?无论如何,非常感谢。
  • 它增加了更好的维护!以后将包含文件添加到“包含”目录后,您不需要执行包含步骤。所以你不能忘记包含一些东西。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-01-04
  • 2011-04-19
  • 2013-08-09
  • 1970-01-01
  • 1970-01-01
  • 2018-06-08
相关资源
最近更新 更多