这是网址:
http://localhost/test.php?id=http://google.com/?var=234&key=234
而且我无法获得完整的 $_GET['id'] 或 $_REQUEST['d']。
<?php
print_r($_REQUEST['id']);
//And this is the output http://google.com/?var=234
//the **&key=234** ain't show
?>
最佳答案
$get_url = "http://google.com/?var=234&key=234";
$my_url = "http://localhost/test.php?id=" . urlencode($get_url);
$my_url 输出:
http://localhost/test.php?id=http%3A%2F%2Fgoogle.com%2F%3Fvar%3D234%26key%3D234
现在您可以使用 $_GET['id']
或 $_REQUEST['id']
(已解码)获取此值。
echo urldecode($_GET["id"]);
输出
http://google.com/?var=234&key=234
获取每个 GET 参数:
foreach ($_GET as $key=>$value) {
echo "$key = " . urldecode($value) . "<br />\n";
}
$key
是 GET 键,$value
是 $key
的 GET 值。
或者您可以使用替代解决方案来获取 GET 参数数组
$get_parameters = array();
if (isset($_SERVER['QUERY_STRING'])) {
$pairs = explode('&', $_SERVER['QUERY_STRING']);
foreach($pairs as $pair) {
$part = explode('=', $pair);
$get_parameters[$part[0]] = sizeof($part)>1 ? urldecode($part[1]) : "";
}
}
$get_parameters
与解码后的 url $_GET
相同。
关于php - 解析包含另一个 URL 的 URL 中的 GET 请求参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5645412/