【问题标题】:How to get this php $_GET value?如何获得这个 php $_GET 值?
【发布时间】:2019-11-29 22:36:09
【问题描述】:

我有一个这种格式的链接http://localhost:8012/image.php?2

这样返回print_r($_GET)的结果

Array ( [2] => ) string(0) ""

例如http://localhost:8012/image.php?3 会回来

Array ( [3] => ) string(0) ""

我不知道如何获得 2/3 的值,尝试了所有方法

【问题讨论】:

  • 这不是一个值,而是一个键。
  • 知道它是一把钥匙无助于知道它是哪一把。 2 或 3,具体取决于 URL。
  • 要获取第一个查询参数的键,您可以这样做:$val = array_keys($_GET)[0] ?? null;$val = key($_GET);

标签: php get


【解决方案1】:

$_GET 是一个关联数组。请参阅https://www.php.net/manual/fr/reserved.variables.get.php#98419 了解如何处理 GET HTTP 变量。

您应该使用$_SERVER['QUERY_STRING']$_SERVER['REQUEST_URI'] 并对其进行解析。

在您的情况下,使用 url http://localhost:8012/image.php?2:

  • $_SERVER['QUERY_STRING'] = 2
  • $_SERVER['REQUEST_URI'] = /image.php?2

尝试使用这两个变量的不同 URL 以查看它们包含的内容。

一旦你有了你的价值,你就必须解析它。在QUERY_STRING的情况下:

$image_id = preg_replace('`^([0-9]+)`', '$1', $_SERVER['QUERY_STRING']);

检查 URL 很重要,因为您永远不知道用户可以在 URL 中传递什么。

REQUEST_URI的情况下:

$image_id = preg_replace('`^image\.php\?([0-9]+)`', '$1', $_SERVER['REQUEST_URI']);

仅供参考:您尝试做的是路由器的角色。查看https://route.thephpleague.com/,了解图书馆如何帮助您更轻松、更安全。

【讨论】:

    猜你喜欢
    • 2011-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-11
    • 1970-01-01
    相关资源
    最近更新 更多