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

时间:2012-03-01 14:28:23

标签: 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,$pages)) {
            $page .= '.php';
            include($page);
        }
        else {
        echo 'Page not found. Return to
        <a href="index.php">index</a>';
        }
    }
        else {
        include("home.php");
    }
       ?>

我应该在此脚本中添加什么,以便能够包含来自不同文件夹的DYNAMICALLY文件(例如,我有index.php中的www/mysite_folder页面,我想动态地包含在index.php中{1}} Adresses.php中的文件www/mysite_folder/faq_folder?请注意,通过动态我并不是指常规包含(include();)而是<a href="index.php?category=faq_folder&page=adresses">Adresses</a>

2 个答案:

答案 0 :(得分:2)

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

<? 
$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;  
} 
?>

这是安全和自动化的。

答案 1 :(得分:0)

require('faq_folder/'.$file_name);但它不是非常安全的解决方案。