【问题标题】:PHP - Modify only one GET parameterPHP - 只修改一个 GET 参数
【发布时间】:2016-06-25 00:24:27
【问题描述】:

假设我有这个 URL - http://www.example.com/index.php?id=123&version=3&course=234&version=4,我只想更改一个参数而不使用 href“重置”公式。我该怎么办?

假设从上面的 URL 我想将 id 从 123 更改为 758。使用完整的 URL 我会做 <a href="http://www.example.com/index.php?id=758&course=234&version=4">Change id</a>

现在假设我想将 URL 中的 version 从 4 更改为 5。我可以做些什么来保持id 为123 或758 而不会使用href 重置version 而不会丢失其他参数?

【问题讨论】:

  • 请提供更多详细信息您想要做什么。
  • 我将使用href标签通过URL过滤系统,例如idcourseversion...如果我更改版本的href,我不会'不想丢失 id 和 course 的值。我知道我可以在我的href 中使用 $_GET。我想知道是否有简单的方法。我可以更改一个参数而不是对整个 url 使用 $_GET,因为它会变得太长,并且可能导致错误

标签: php http http-get


【解决方案1】:

解决此问题的简单方法是在最后再次添加该值。在对 url 的 GET 调用中,如果存在具有不同值的相同键,它将始终采用最新的

http://www.example.com/index.php?id=758&course=234&version=4&id=123

处理这个问题的最佳方法是使用 parse_url() 函数将查询作为键值对数组获取,并使用 http_build_query() 函数将其返回到 http 查询表单。

【讨论】:

  • 您可以通过正则表达式从锚点获取 URL,例如href=\"(.*?)\" 然后 parse_url()http_build_query() 如建议的那样可能是您想要做的。我想说不要依赖像两次传递相同参数这样的怪癖,因为你永远不知道是否所有浏览器都会做同样的事情。
猜你喜欢
  • 2020-07-19
  • 1970-01-01
  • 2021-11-05
  • 2014-01-09
  • 1970-01-01
  • 1970-01-01
  • 2016-06-16
  • 2016-09-19
  • 1970-01-01
相关资源
最近更新 更多