URL参数值替换

时间:2012-10-23 05:15:55

标签: php string url

  

可能重复:
  Change single variable value in querystring

例如:www.example.com/feeds?arg1=xyz&arg2=abc$arg3=pqr。我想用say 123替换arg2值来获取www.example.com/feeds?arg1=xyz&arg2=123$arg3=pqr。请提出一个最容易实现的方法。

2 个答案:

答案 0 :(得分:2)

过程很简单。

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

    $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;
    }
    

答案 1 :(得分: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参数,无论如何都是您需要的。