我在localhost中设置文件夹。我想编写一个脚本来获取该域路径,但我尝试使用
$_SERVER['SERVER_NAME']
$_SERVER['HTTP_HOST']
getenv('HTTP_HOST')
这些全部只给http://localhost
,我怎么能得到像http://localhost/abc
这样的完整路径
(abc是一个文件夹,在www目录中)
答案 0 :(得分: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;
}
答案 1 :(得分:0)
您必须进行一些编码才能使其与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);