用PHP获取webroot

时间:2010-03-11 11:50:35

标签: php

我正在为PHP使用Apache服务器。如何在PHP中检索我的Web根目录,例如http://localhost/testthesis/

4 个答案:

答案 0 :(得分:15)

相对路径

对于您的网络服务器根目录,请使用:

$folder = '/';

对于检索到的脚本的目录,请使用:

$folder = './';

绝对路径(从客户的角度来看)

对于您的网络服务器根目录,请使用:

$protocol = $_SERVER['HTTPS'] == '' ? 'http://' : 'https://';
$folder = $protocol . $_SERVER['HTTP_HOST'];

对于检索到的脚本的目录,请使用:

$protocol = $_SERVER['HTTPS'] == '' ? 'http://' : 'https://';
$folder = $protocol . $_SERVER['HTTP_HOST'] . '/' . basename($_SERVER['REQUEST_URI']);

答案 1 :(得分:8)

这是一种方法:

$web_root = "http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF'])."/";

OUTPUT -->http://website.com/parent_folder/

答案 2 :(得分:5)

Web根始终只是/。您永远不需要主机名或协议部分,root只能是服务器的根,而不是某个文件夹或文件。

如果您需要一些路径,例如/testthesis/ - 有一些方法,但它与网络 root 没有任何共同之处。

如果您需要webroot的文件系统目录 - 它位于$_SERVER['DOCUMENT_ROOT']变量中。

答案 3 :(得分:1)

您所寻找的不是网络服务,而是网址。

您可以像下面这样获取当前网址:

$protocol = strpos($_SERVER['SERVER_SIGNATURE'], '443') !== false ? 'https://' : 'http://';
$url = $protocol . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];