我有一个包含多个目录和子目录的站点。我只使用一个目录:框架及其所有子目录。所以我正在使用/framework, /framework/Module1, /framework/Module1/Class1
,然后是framework/Module1/Class1/biology/microscope/microscopeTutorial/thispage.php
。我不知道进入框架的路径。
我需要在我的文件中加入一个包含框架内文件的文件,但我希望能够使用该文件。我找到了两个选择。 $_SERVER['DOCUMENT_ROOT']
不起作用,因为我不在根目录中。手动将适当数量的../../../
手动插入一千多页,看起来很笨拙,令人沮丧,浪费时间。
我编写了一个脚本,我可以在Framework中运行,它将迭代所有目录和子目录,将行include('header.php');
添加到所有文件中。编辑此脚本以适合每个子目录几乎与手动添加它们一样令人沮丧。
那么如何告诉框架和framework/Module1/Class1/biology/microscope/microscopeTutorial/
之间的所有文件在框架中查找文件?
我想我需要的是一条单线说,一直抬头直到找到它,然后停下来。这样的事情存在吗?
答案 0 :(得分:1)
我认为您需要在__autoload函数中安装它。当使用尚未加载的类时,将调用__autoload(className)。
可能是这样的
function __autoload($className) {
// pick file up from current, up directory tree
$fname = $className.'.php';
while (!file_exists($fname) {
$fname = '../'.$fName;
}
require_once $fname;
}
注意 - 代码未经测试。
答案 1 :(得分:0)
我在Ian给出的答案上尝试了几种不同的变体,并尝试使用dir函数进行一些变化。我最终决定只创建我的文件的新副本,将额外的../ in添加到代码的相关部分,然后在子目录中运行它。
感谢您的帮助!