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模板放在另一个文件夹中?