当包含的文件本身包含另一个文件但使用点前缀引用它时,我遇到了包含问题。例如有三个文件 - inc1.php,inc2.php和subdir/test.php,其内容是 -
子目录/test.php:
set_include_path(get_include_path().":../:../.");
require("inc1.php");
inc1.php:
require("./inc2.php");
inc2.php
echo "OK";
此处显示的包含树失败,并显示无法打开流:没有此类文件或目录错误。如果 inc1.php 包含一个简单的require("inc2.php"); 它就可以工作。, 没有“./”前缀。我添加了“../.” 到包含路径以尝试使其工作,但这没有效果。
除了使用“./”前缀执行包含之外,这里的解决方案是什么,假设inc1.php和inc2.php不可写并且您只能更改subdir/test.php?你怎么还能在 test.php 中包含 inc1.php?
作为参考,我使用的是 PHP 5.2.9。