在http get params中传递一个完整的字符串url

时间:2017-11-29 18:04:43

标签: php url get

我试试 http://localhost/example?url=http://www.examenple.com/nice=url-get.aspx?n=value1&p=value2&params3=value3

但是当我得到一个url params

$url = $_GET["url"];
echo $url;

回音值 http://www.examenple.com/nice=url-get.aspx?n=value1

如何获得完整的网址参数

1 个答案:

答案 0 :(得分:0)

当服务器解析请求URL以检测GET参数时,它会将URL拆分为每个&字符:

url=http://www.examenple.com/nice=url-get.aspx?n=value1 
&
p=value2
&
params3=value3

因此$_GET将有3个成员,url,p和params3。

为避免这种情况,您需要更换每个&其他人物。这称为URL编码。在PHP中,有一个函数:urlencode()

$page = "http://www.examenple.com/nice=url-get.aspx?n=value1&p=value2&params3=value3";
echo "http://localhost/example?url=" . urlencode($page);

如果您无法访问来源和输入网址,但是您可以确定只有一个,url参数将传递到您的网页,您可以尝试这样做:

$url = $_GET["url"];
foreach ($_GET as $key => $value) {
    if ($key == "url") continue;
    $url .= "&" . $key . "=" $value;
}