加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 在包含中使用$_SERVER [‘DOCUMENT_ROOT’]是个好主意?

发布时间:2020-12-13 14:03:04 所属栏目:PHP教程 来源:网络整理
导读:这是一个好主意吗? require_once($_SERVER['DOCUMENT_ROOT'].'/include.php'); 如果在同一台服务器上有两个虚拟主机,一个用于实时,另一个用于开发,具有不同的Apache DocumentRoot,则可避免在包含源未知时包含绝对路径,并且可能位于任何目录中. (注意:下一
这是一个好主意吗?
require_once($_SERVER['DOCUMENT_ROOT'].'/include.php');

如果在同一台服务器上有两个虚拟主机,一个用于实时,另一个用于开发,具有不同的Apache DocumentRoot,则可避免在包含源未知时包含绝对路径,并且可能位于任何目录中.

(注意:下一节中的文件路径是相对于Web根目录,实际上就像/var/www/app/core/init.php,其中/ var / www / app是Web根目录)

例如:我有一个/core/init.php,它通过网站上的地方使用相对路径(/file.php,/dir/file.php或/dir/dir/file.php)进行调用.

这个init.php然后包括几个功能页面,在资金目录中,/ core的子目录(如/core/func/userfunctions.php中所示).

因此,在init.php中,我可以使用$_SERVER方法,因为如果我使用相对路径,并尝试从/dir/file.php这样的页面调用函数,它将会中断.

我看不到任何问题,但一般可能会出错?

我看到没有设置$_SERVER [‘DOCUMENT_ROOT’]的情况,或者不是你所期望的(即在CLI或旧的IIS中没有设置,或者在某些CGI设置中无效).

因此,您可以使用dirname(__ FILE__)来获取调用该行的脚本的路径.然后可以从中引用相对路径.

include dirname(__FILE__) . '/../../other/file.php';

当文件的目录结构是已知的并且不会改变时,我使用上述方法.

如果DOCUMENT_ROOT不可用,以下是一个合适的替代品:

substr($_SERVER['SCRIPT_FILENAME'],-strlen($_SERVER['SCRIPT_NAME']));

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读