在php中使用DOCUMENT_ROOT时遇到问题包括设置文件路径

时间:2017-09-08 18:11:16

标签: php

我在PHP include中有许多相对文件路径。

从历史上看,我一直在每个页面的顶部设置一个$ rootPath变量,只是在文件路径中回显该变量。

例如:

在文件头中:

<?php $rootPath = "../">

在包含中:

<img src="<?php echo $rootPath ?>images/file-name.jpg" >

问题是我正在为此项目使用托管CMS平台(超现实),并且他们的平台无法解析include中的变量。他们需要的语法使用DOCUMENT_ROOT。

所以我将包含文件中的代码切换为:

<img src="<?php include($_SERVER['DOCUMENT_ROOT'] . 'images/file-name.jpg'); ?>" >

当我这样做时,不包括该行代码下面的任何内容。

这是在共享托管环境中,所以我可能会遇到我的文档根目录不是Web根目录的情况。

我是这些家伙的新手。放轻松我吧。但如果有人对我所忽视的事情有任何建议,我会非常感激!

2 个答案:

答案 0 :(得分:0)

你想要什么? 您不需要使用包含图像。它将在src属性中显示字节,用户的原始数据。

答案 1 :(得分:0)

$ _ SERVER [&#39; DOCUMENT_ROOT&#39;]不包含结尾斜杠(/)字符。试试这个:

<img src="<?php echo($_SERVER['DOCUMENT_ROOT'] . '/images/file-name.jpg'); ?>" >

修改

在HTML中,&#39; src&#39; attribute可以使用斜杠(/)字符表示根目录。在您的情况下,将是&#39; / home / nqtyaxgr / public_html&#39;。这样就可以找到路径,无论页面位置如何(任何数量的子级别向下)。

PHP并不了解这一点,这就是您需要在需要或包含文件时使用$ _SERVER [&#39; DOCUMENT_ROOT&#39;]的原因。您可能/应该有一个PHP文件,其中包含所有常见常量,变量或函数。我建议你也在那里定义一个全局变量。它看起来像这样:

$imgPath = "/images/";

然后在HTML中使用它:

<img src="<?php echo $imgPath;?>file-name.jpg">