说某人正在寻找
http://subdomain.domainname.com/somedirectory/somefile.htm
$ _SERVER变量包含http://subdomain.domainname.com/somedirectory/somefile.htm
答案 0 :(得分:17)
// Get HTTP/HTTPS (the possible values for this vary from server to server)
$myUrl = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] && !in_array(strtolower($_SERVER['HTTPS']),array('off','no'))) ? 'https' : 'http';
// Get domain portion
$myUrl .= '://'.$_SERVER['HTTP_HOST'];
// Get path to script
$myUrl .= $_SERVER['REQUEST_URI'];
// Add path info, if any
if (!empty($_SERVER['PATH_INFO'])) $myUrl .= $_SERVER['PATH_INFO'];
// Add query string, if any (some servers include a ?, some don't)
if (!empty($_SERVER['QUERY_STRING'])) $myUrl .= '?'.ltrim($_SERVER['REQUEST_URI'],'?');
echo $myUrl;
...是我最有弹性的例子。
答案 1 :(得分:6)
您可能想尝试:
echo '<pre>';
print_r($_SERVER);
echo '</pre>';
$_SERVER['HTTP_HOST']
和$_SERVER['SCRIPT_NAME']
或$_SERVER['PHP_SELF']
的组合应该是您正在寻找的。 p>
答案 2 :(得分:5)
你需要自己构建它;
echo $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
您还可以使用$_SERVER['HTTPS']
来检测HTTP或HTTPS。
我建议使用$_SERVER['REQUEST_URI']
,因为这正是用户在重写或其他任何内容之前所寻找的内容,并且包含GET变量
答案 3 :(得分:1)
$ _SERVER中没有包含完整的网址。但是你可以使用这段代码:
$url = "http://" . $_SERVER['HTTP_HOST'] . "/" . $_SERVER['PHP_SELF'] . "/" . $_SERVER['QUERYSTRING'] . "/";