使用Php我想提取页面的当前Url,包括附加到它的所有变量。 $ _SERVER ['PHP_SELF']只返回没有变量的url。知道我需要什么功能。
示例:www.site.com/?v1=xyz&v2=123
使用$ _SERVER ['PHP_SELF']我只得到:www.site.com而不是整个网址。 单独使用$ _GET []不是一个opton,因为我不确定哪个变量附加到URL。
谢谢
答案 0 :(得分:6)
你可以输出$_SERVER
超全局变量的内容:那里有许多有趣的东西; - )
例如,使用以下URL调用页面:
http://localhost/temp/temp.php?a=10&b=glop
使用:
var_dump($_SERVER);
我至少得到:
array
...
'HTTP_HOST' => string 'localhost' (length=9)
...
'REQUEST_METHOD' => string 'GET' (length=3)
'QUERY_STRING' => string 'a=10&b=glop' (length=11)
'REQUEST_URI' => string '/temp/temp.php?a=10&b=glop' (length=26)
'SCRIPT_NAME' => string '/temp/temp.php' (length=14)
'PHP_SELF' => string '/temp/temp.php' (length=14)
'REQUEST_TIME' => int 1270060299
在那里,我想至少那些人会对你感兴趣:
$_SERVER['QUERY_STRING']
:包含整个查询字符串;即所有参数及其值的列表$_SERVER['REQUEST_URI']
:包含请求的URI - 包括参数答案 1 :(得分:3)
$request = $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'].$_SERVER['QUERY_STRING'];
对于整个路径和查询字符串。
答案 2 :(得分:0)
使用$_SERVER['QUERY_STRING']
检索变量部分。
干杯
答案 3 :(得分:0)
到目前为止,我找到的最佳解决方案是:http://hayageek.com/php-get-current-url/
function getCurrentURL() {
$currentURL = (@$_SERVER["HTTPS"] == "on") ? "https://" : "http://";
$currentURL .= $_SERVER["SERVER_NAME"];
if($_SERVER["SERVER_PORT"] != "80" && $_SERVER["SERVER_PORT"] != "443") {
$currentURL .= ":".$_SERVER["SERVER_PORT"];
}
$currentURL .= $_SERVER["REQUEST_URI"];
return $currentURL;
}
答案 4 :(得分:0)
两行:
$base_url = ( isset($_SERVER['HTTPS']) && $_SERVER['HTTPS']=='on' ? 'https' : 'http' ) . '://' . $_SERVER['HTTP_HOST'];
url = $base_url . $_SERVER["REQUEST_URI"];