我在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根目录的情况。
我是这些家伙的新手。放轻松我吧。但如果有人对我所忽视的事情有任何建议,我会非常感激!
答案 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">