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

PHP动态获取将包含在其他文件中的特定文件的完整绝对URL路径

发布时间:2020-12-13 17:42:17 所属栏目:PHP教程 来源:网络整理
导读:我有一个配置文件.这不是一个独立的文件.我将使用require()将此文件包含在我要使用的页面的顶部.我想动态获取此配置文件的完整绝对URL路径,无论其位置如何,并将其作为常量存储在其自身内.例如: 物理位置:(根目录)/my_folder/configuration.php 需要URL为:w
我有一个配置文件.这不是一个独立的文件.我将使用require()将此文件包含在我要使用的页面的顶部.我想动态获取此配置文件的完整绝对URL路径,无论其位置如何,并将其作为常量存储在其自身内.例如:

物理位置:(根目录)/my_folder/configuration.php

需要URL为:www.mydomain.com/my_folder/configuration.php

物理位置:( root dir)/demos/my_folder/configuration.php

需要URL为:www.mydomain.com/demos/my_folder/configuration.php

物理位置:(根目录)/demos/site1/my_folder/configuration.php

需要URL为:www.mydomain.com/demos/site1/my_folder/configuration.php

物理位置:( root dir)/demos/site2/my_folder/configuration.php

需要URL为:www.mydomain.com/demos/site2/my_folder/configuration.php

简单到目前为止?这是真正需要的东西并使其变得复杂(IMO).考虑一下:

配置文件位于:www.mydomain.com/demos/site2/my_folder/configuration.php

有嵌套文件夹:www.mydomain.com/demos/site2/1/2/3/index.php

按照上面的URL访问“3”子文件夹中的index.php文件时,我需要配置文件的路径为www.mydomain.com/demos/site2/my_folder/configuration.php而不是www. mydomain.com/demos/site2/1/2/3/my_folder/configuration.php

我怎样才能实现上述目标?

解决方法

如果你可以依赖$_SERVER [‘DOCUMENT_ROOT’]的值,那么在configuration.php里面:

$path = substr( __FILE__,strlen( $_SERVER[ 'DOCUMENT_ROOT' ] ) );

$url = "www.mydomain.com{$path}";

如果它适合您的用例,您可以使用$_SERVER [‘HTTP_HOST’]使其更具动态性;

DOCUMENT_ROOT

我在开发中使用了DOCUMENT_ROOT,因为它通常是唯一可用于构造某些自引用路径的动态变量.有一个关于如何处理DOCUMENT_ROOT的Apache错误票证(#26052),特别是Apache不允许你用RewriteRule设置值,并且在使用mod_vhost_alias时没有将它设置为合理的值.讨论持续了7到8年,因为大概来自Apache项目的人们拒绝改变行为,直到他们最终出现并在今年2.4.1中做出改变. (我之前看过这个,但我现在忘记了确切的变化,以及它们的满足程度.)

如果您查看故障单上的评论,您会看到人们通过以下评论拒绝对行为进行更改:

Don’t trust the DOCUMENT_ROOT variable.

DOCUMENT_ROOT is not,never was,and never will be a reliable way of finding the filesystem path to web content.

所以我建议阅读那张票的评论,看看有人在说使用它的注意事项.我已经使用它取得了很大成功,并且不知道在DOCUMENT_ROOT可用的相同情况下实现相同功能的更好方法并提供必要的数据.

(编辑:李大同)

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

    推荐文章
      热点阅读