php - 解析包含另一个 URL 的 URL 中的 GET 请求参数

标签 php get request urlencode

这是网址:

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/

相关文章:

PHPExcel 读取过去的 $highestRow

Javascript REST API - 您必须指定 API key 才能发出请求

http - 确定服务器是否支持恢复获取请求

javascript - 了解node.js中的请求获取

php - 突出显示当前菜单选择 php

javascript - 提交表单 onchange 复选框并更新 mysql 数据库

javascript - Window.location 在 ajax 中被取消

C# 获取设置访问器

javascript - 无法获取查询字符串数据

jsp - 如何检查是否按下了按钮(在 jsp 文件中)