关于“包含”http://php.net/manual/en/function.include.php 的手册指出:
“include 语句包含并评估指定的文件。”.
没有提到文件夹。
在“安全”include("../../secure/"); 的末尾添加 /,这在技术上会尝试查找索引文件,但仍然无法正常工作,因为 PHP 的 include() 需要特定的文件名。
但是,如果您想包含所有文件,例如带有 .html 扩展名的文件,您可以使用:
foreach (glob("../../*.html") as $filename)
{
include $filename;
}
为了将所有文件包含在给定文件夹中,您可能会侥幸逃脱:
foreach (glob("../../folder/*") as $filename)
{
include $filename;
}
或使用 scandir(): 并从 Stack https://stackoverflow.com/a/2692368/ 上的此答案中提取
foreach (scandir(dirname(__FILE__)) as $filename) {
$path = dirname(__FILE__) . '/' . $filename;
if (is_file($path)) {
require $path;
}
}
我不知道您的最终目标是什么,如果是要包含该文件夹中的所有文件或索引文件,请使用 include("../../secure");。
参考资料:
在您的系统上设置错误报告以捕获和显示应该会给您带来类似于:
警告:include(/home/user/htdocs/folder):无法打开流:第 x 行的 /home/user/htdocs/other_folder/file.php 中没有这样的文件或目录
脚注:
您可能还需要使用完整的系统路径。
即:
/var/user/home/htdocs/folder/file.xxx
用我的根目录中的文件夹/文件进行测试证明是成功的:(在 Linux 机器上)
include("../../folder_in_root/index.html");
但不是
include("../../folder_in_root");
也没有
include("../../folder_in_root/");
你也可以使用和定义一个常量:(同样,如果你想包含那个文件夹的索引文件)
define("TEST", "../../folder_in_root/index.html");
include(TEST); // do not quote this
请注意define("TEST", "../../folder_in_root/"); 不起作用;它必须是一个文件名。
参考: