Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 动态获取网站根URL/基本URL_Php_Document Root - Fatal编程技术网

Php 动态获取网站根URL/基本URL

Php 动态获取网站根URL/基本URL,php,document-root,Php,Document Root,我不知道这是否可能,但让我解释一下我的问题 我正在和多个开发人员一起做一个项目。我们都有自己的开发环境。对于某些人来说,我们正在构建的网站位于其文档根目录的一个或多个子文件夹中,例如 /library/webserver/htdocs/project/website 其他人在站点上有不同的路径,如 /htdocs/website 当找到一种获取文档根目录(包括php文件等)的通用方法时,没有问题。但我还想找到网站的根URL,在第一种情况下,这意味着: http://localhost/pro

我不知道这是否可能,但让我解释一下我的问题

我正在和多个开发人员一起做一个项目。我们都有自己的开发环境。对于某些人来说,我们正在构建的网站位于其文档根目录的一个或多个子文件夹中,例如

/library/webserver/htdocs/project/website
其他人在站点上有不同的路径,如

/htdocs/website
当找到一种获取文档根目录(包括php文件等)的通用方法时,没有问题。但我还想找到网站的根URL,在第一种情况下,这意味着:

http://localhost/project/website/
在第二种情况下

http://localhost/website/
在生产中,同样的方法应该简单地返回

http://domain.tld.

有没有一种很好的方法可以做到这一点,而不必手动定义路径?谢谢大家!

我想你在寻找:

“HTTP_主机”

主机的内容:来自当前请求的头(如果有)


我最终得到了一个类似这样的函数。它使用当前服务器的文档根目录,但随后去掉了网站根目录名之前的部分-这实际上是目录名的目录名如果此函数位于上面一步中:

$dirName = dirname(dirname(__FILE__) . ".." . DIRECTORY_SEPARATOR);
$dirName = str_replace('\\', "/", $dirName);    
$base = str_replace($_SERVER['DOCUMENT_ROOT'], "", $dirName);
文档根目录为
/etc/webserver/documents/
,文档根目录下的网站位于
/projects/website1
,如果此脚本位于
/projects/website1/somreDir/someFile.php
中,它将返回
/projects/website1


希望这能帮助别人

不完全是。HTTP_ROOT为我提供了web服务器根。我需要的是web服务器http根,然后将路径添加到当前项目根。另外-由于某些原因,当我在本地运行时,$\u服务器['HTTP\u ROOT']不包含任何内容。。。