Php 动态包含来自不同文件夹的文件

Php 动态包含来自不同文件夹的文件,php,dynamic,include,Php,Dynamic,Include,我有以下脚本来执行动态操作,包括: <?php $_GET["page"] = (isset($_GET["page"])) ? $_GET["page"] : "home"; $page = $_GET['page']; $pages = array('home', 'solutions', 'projects', 'about', 'contact'); if (!empty($page)) { if(in_array($page,$p

我有以下脚本来执行动态操作,包括:

 <?php   
$_GET["page"] = (isset($_GET["page"])) ? $_GET["page"] : "home";

    $page = $_GET['page'];
    $pages = array('home', 'solutions', 'projects', 'about', 'contact');
    if (!empty($page)) {
        if(in_array($page,$pages)) {
            $page .= '.php';
            include($page);
        }
        else {
        echo 'Page not found. Return to
        <a href="index.php">index</a>';
        }
    }
        else {
        include("home.php");
    }
       ?>


我应该向这个脚本添加什么才能动态地包含来自不同文件夹的文件(例如,我在
www/mysite\u文件夹中有一个
index.php
页面,我想动态地将
www/mysite\u文件夹/faq\u文件夹中的文件
adress.php
包含在
www/mysite\u文件夹/faq\u文件夹中)? 注意,我所说的动态不是指常规的include(
include();
),而是指

require('faq\u folder/'.$file\u name)但这不是一个非常安全的解决方案。

我认为没有理由在目录之间拆分可执行文件。
因此,如果您可以将所有文件保存在一个文件中,下面是代码

<? 
$page = (empty($_GET["page"])) ? "home" : $_GET["page"];
$page = "includes/".basename($page).".php"; 
if (is_readable($page)) { 
  include($page); 
} else {
  header("HTTP/1.0 404 Not Found"); 
  exit;  
} 
?>


这是安全和自动的。

您希望在
页面
参数中指定目录,还是只指定文件名并执行搜索以在子目录中找到它?我无法理解您问题的含义@另一个代码,我对PHP非常陌生,我想使用一种安全、简单但功能强大的方法,但如果你能给出这两种方法的示例,那就太棒了。另外,如果你能将它与我提供的脚本结合起来,那就太好了。@schraspel上校,我有一个文件夹(比如说:mysite_文件夹),其中存储了大部分页面,其中一个是index.php,我在其中动态地包含存储内容的其他页面,但在mysite\u文件夹中,我有另一个目录(lat's say:faq\u folder)包含一个我希望动态包含在index.php中的页面。您不能将所有执行文件保存在一个目录中的原因是什么?还有其他更安全的解决方案吗?感谢Shrapnel上校,我将一些文件放在另一个目录中,因为它们与注册和登录新用户相关:注册表,表单验证、登录表单等。该文件夹称为userregistration。该文件夹中的表单将动态显示在索引页的内容部分:)为什么不将所有可执行文件放在一个文件夹中,将所有表单和其他HTML模板放在另一个文件夹中?