需要包含变量的文件

时间:2011-09-26 22:25:15

标签: php variables require require-once

我目前正在使用以下代码在我的网页中包含一个文件:

require_once $_SERVER['DOCUMENT_ROOT'] . '/include/file.php';

但是,我现在已经编辑了我的系统,所以我将URL输入到根目录中的数据文件中,这使得我网站的其他部分功能正常,并允许我使用不同的目录。

简而言之,我在网站上使用启动页面,根目录是/目录而不是根目录,因此我的数据文件中的URL为http://www.domain.com/directory

所以,我需要解决的是如何使用包含URL的数据文件中的变量将此行指向目录

所以$_SERVER['DOCUMENT_ROOT']变得无关紧要,因为我需要从数据文件中的变量中获取数据,该数据不再存在于根目录中。

它必须是:

require_once (variable from file a few directories back) + absolute path to file;

如果我需要使用与根目录不同的目录构建网站,我希望这行代码能够面向未来。

我希望这是有道理的!

2 个答案:

答案 0 :(得分:2)

创建SITE_ROOT并改为使用它。这样,它将适用于任何目录更改。

define('SITE_BASE', '/directory/');
define('SITE_ROOT', $_SERVER['DOCUMENT_ROOT'] . SITE_BASE);

然后,您可以使用SITE_BASE创建URI:

<a href="<?php echo SITE_BASE ?>subdir/">link</a>

SITE_ROOT用于访问系统上的文件:

require_once SITE_ROOT . 'include/file.php';

答案 1 :(得分:0)

您是否考虑在include_path文件中设置php.ini?例如,我自己的php.ini文件有include_path = ".:/path/to/web/root",这使我无需担心我的文件在包含它们时的位置。

在您的情况下,您需要将其设置为include_path = ".:/path/to/web/root/directory"。如果您不知道Web根目录的路径,只需运行echo $_SERVER['DOCUMENT_ROOT'];即可找到它。

此解决方案“面向未来”,因为您只需要更改php.ini值,一切就绪。