1

我在本地主机中设置文件夹。我想编写一个脚本来获取该域路径,但我尝试过使用

$_SERVER['SERVER_NAME'] 
$_SERVER['HTTP_HOST'] 
getenv('HTTP_HOST')

这些http://localhost都只给出,我怎么能得到完整的路径http://localhost/abc (abc是一个文件夹,在www目录中)

4

2 回答 2

2

调用这个函数,它会返回 url

public function curPageURL() 
{
    $pageURL = 'http';
    if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";}
    $pageURL .= "://";
    if ($_SERVER["SERVER_PORT"] != "80") 
    {
        $pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
    } 
    else 
    {
        $pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
    }
    return $pageURL;
}
于 2013-11-06T10:01:05.960 回答
1

您必须进行一些编码才能使其与parse_url()一起使用。所以我建议这样做:

$parsed_url = parse_url($_SERVER['PHP_SELF']);
echo $parsed_url['path'];

但这会显示包含脚本名称的完整路径,因此您可能需要添加一些逻辑来进一步解析。

编辑:决定对这个概念进行更多编码,结果如下。将返回当前脚本的路径,但没有脚本文件名:

$parsed_url = parse_url($_SERVER['PHP_SELF']);
$path_array = explode('/', $parsed_url['path']);
array_pop($path_array);
echo join('/', $path_array);
于 2013-11-06T03:53:00.990 回答