1

可能重复:
更改查询字符串中的单个变量值

例如:www.example.com/feeds?arg1=xyz&arg2=abc$arg3=pqr。我想用 123 替换 arg2 值以获得www.example.com/feeds?arg1=xyz&arg2=123$arg3=pqr. 请提出一种最简单的方法来实现这一目标。

4

2 回答 2

2

过程很简单。

  1. 解析查询部分。
  2. 使用parse_str提取查询中的每个变量
  3. 代替它。
  4. 使用http_build_query再次构建查询
  5. 将此查询字符串放入主 url

请参阅此代码。

$str = "www.example.com/feeds?arg1=xyz&arg2=abc$arg3=pqr";
$p = strpos($str, "?");
if($p!==false){
    $q = substr($str, $p+1);
    parse_str($q, $u);
    $u['arg2']='new value';
    $q=http_build_query($u);
    $str = substr($str, 0, $p). "?". $q;
}
于 2012-10-23T05:31:38.747 回答
1
$url = "?";
foreach ($_GET as $key => $value) {
  if ($key != 'arg2') {
    $url .= "$key=$value&";
  }
}
$url .= "arg2=123"; // has arg=123 at the very end

一旦你有了这个,你所要做的就是:

header("Location: $url");

由于您在 之前没有提供任何东西?,它只会更改$_GET参数,这就是您所需要的。

于 2012-10-23T05:20:21.603 回答