如何用PHP包含上面的根目录

时间:2015-06-25 02:54:52

标签: php

出于安全原因,我试图将配置文件放在文档根目录之上,并尝试在我的本地开发计算机(xampp)和bluehost上执行此操作,在include_once ($_SERVER['DOCUMENT_ROOT'].'../set/include.php')两种情况下都找不到我的文件在/set/文件夹中,比文档根目录高一级。我已经尝试了搜索中出现的大部分选项,但我似乎无法使其发挥作用。我这样做是为了安全,但我想知道是否还有其他选项,如果它必须包含在webroot中?有没有我缺少的东西,如php.ini修改等?

2 个答案:

答案 0 :(得分:2)

我通过显式设置路径 - 即完全限定的路径来完成此操作。这可以在.htaccessphp.ini中完成,具体取决于您的设置。然后,当您包含php文件时,您不需要指定文件的路径。

在我的本地主持人`.htaccess'

php_value include_path ".;c:\desiredpath"

在我的共享服务器上``php.ini'

include_path = ".:/home/username/desiredpath"

答案 1 :(得分:2)

基本上,问题在于:

include_once ($_SERVER['DOCUMENT_ROOT'] . '../set/include.php')
                                           ^

它缺少一个前导斜杠,导致类似/htdocs../set/include.php的路径。

也就是说,您可以使用dirname()以便传递绝对路径:

include_once dirname($_SERVER['DOCUMENT_ROOT']) . '/set/include.php';