我目前正在使用以下代码在我的网页中包含一个文件:
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;
如果我需要使用与根目录不同的目录构建网站,我希望这行代码能够面向未来。
我希望这是有道理的!
答案 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
值,一切就绪。