PHP:包含来自不同根目录的文件

时间:2009-06-09 18:46:28

标签: php

我有一个站点的两个根目录,httpdocs和httpsdocs。我确信这显然是2的用途。但我希望在整个网站中保持一致,如全球导航。现在我有两个单独的文件(每边一个),我想只有一个。这很难维护,因为每次我改变一个我必须改变另一个(如果我记得),它打破了干燥规则。但是如果我尝试使用相对路径将文件从一侧包含到另一侧,它会告诉我文件路径是不允许的,因为它超出了文档根目录。如果我尝试用绝对URL包含它,我会收到另一个错误,说服务器配置中禁用了文件访问。 (我在托管帐户上,所以我可以更改,因为服务器配置仅限于.htaccess)。所以有人可以想到解决这个问题吗?

2 个答案:

答案 0 :(得分:1)

您是否有能力在两个目录之间创建symbolic links

答案 1 :(得分:1)

为什么不将您的全局包含文件放在另一个目录中(让我们称之为library),然后让每个http根目录都包含一个包含../library/lib.php的包含文件,然后设置特定的参数。这为您提供了不在文档根路径中的库php文件的附加功能。

实际上。更新,因为我刚刚阅读了有关“相对路径”问题的条目。

你能设置“include path”php值来包含那个目录吗?

这样的事情:

ini_set('include_path', realpath(dirname(__FILE__)."/../library").":".ini_get('include_path'));
require_once('lib.php');

进行了一些研究 - 看起来除非您能够编辑httpd.conf或php.ini值,否则无法更改open_basedirPHP Manual: open_basedir