Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 需要包含变量的文件_Php_Variables_Require_Require Once - Fatal编程技术网

Php 需要包含变量的文件

Php 需要包含变量的文件,php,variables,require,require-once,Php,Variables,Require,Require Once,我目前正在使用以下代码在我的网页中包含一个文件: require_once $_SERVER['DOCUMENT_ROOT'] . '/include/file.php'; 然而,我现在已经编辑了我的系统,所以我将URL输入到根目录中的一个数据文件中,这使得我的站点的其他部分能够正常工作,并允许我使用不同的目录 简而言之,我在一个网站上使用了一个启动页面,其中根现在是/directory,而不是根目录,因此我的数据文件中的URL是 因此,我需要解决的是如何使用包含URL的数据文件中的变量将这一

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

require_once $_SERVER['DOCUMENT_ROOT'] . '/include/file.php';
然而,我现在已经编辑了我的系统,所以我将URL输入到根目录中的一个数据文件中,这使得我的站点的其他部分能够正常工作,并允许我使用不同的目录

简而言之,我在一个网站上使用了一个启动页面,其中根现在是/directory,而不是根目录,因此我的数据文件中的URL是

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

因此,
$\u SERVER['DOCUMENT\u ROOT']
变得无关紧要,因为我需要从数据文件中的变量中获取数据,该变量不再位于根目录中

它需要类似于:

require_once (variable from file a few directories back) + absolute path to file;
我希望这一行代码也能经得起未来的考验,如果我需要使用不同的目录构建一个站点,那么就使用根目录


我希望这是有道理的

创建一个
SITE\u ROOT
并使用它。这样,它将适用于任何目录更改

define('SITE_BASE', '/directory/');
define('SITE_ROOT', $_SERVER['DOCUMENT_ROOT'] . SITE_BASE);
然后,您可以使用
SITE\u BASE
创建URI:

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

您是否考虑过在
php.ini
文件中设置
include_path
?例如,我自己的
php.ini
文件具有
include_path=“.:/path/to/web/root”
,这使我在包含文件时不必担心文件的位置

在您的情况下,您需要将其设置为
include_path=“.:/path/to/web/root/directory”
。如果您不知道web根目录的路径,只需运行
echo$\u服务器['DOCUMENT\u root']以找到它


这个解决方案是“经得起未来考验的”,因为您只需更改
php.ini
值,一切都会就绪。

唯一有意义的事情是有两个不同的变量;将您的基本url设置和本地文档根分开。不确定您在问什么。file.php现在在/directory/include/file.php中,还是仍然在/include/file.php中?你能给我们一些你当前目录结构的真实例子吗,file.php在哪里,这个配置变量包含什么?谢谢你的回答。然而,我从一个php文件控制我的整个系统,我希望保持这种方式。我知道使用PHP实现这一点是可能的——我只需要一个对PHP了如指掌的人来帮助我编写这段代码!:)感谢您的回复jwegner,是的,新路径是/directory/include/file.php。我需要包含的变量位于/目录中。变量包含包含变量的数据文件的URL,即$URL='',再次感谢。感谢您的回复,Kolink。我没有使用php.ini文件。我还不是PHP专家:(我正在使用一个.php文件来控制我的所有页面。这听起来确实可以解决我的问题。我会进一步研究这个问题。非常感谢。这听起来是一个完美的解决方案!我将在哪里包含SITE_ROOT的数据?非常感谢!它将需要成为在每个页面上运行的第一行代码之一。因此at最适合您的特定应用程序。我明白了。非常感谢。我现在就给它一个bash。再次感谢。不客气。很高兴提供帮助。如果这是最佳答案,请单击复选标记:)它可以工作,但我需要能够使用/directory/data.php中的变量,该变量包含指向它的绝对URL()。我可以将您的代码添加到data.php文件中,这将解决我的问题,但随后我必须更改大约100行指向变量的其他代码。只是这一行行不通。再次感谢您的帮助,但如果您知道如何实现这一点,我将非常感谢您的帮助。问候。
require_once SITE_ROOT . 'include/file.php';