2012-10-23 65 views

回答

2

過程很簡單。

  1. 解析查詢部分。
  2. 使用parse_str來提取查詢中的每個變量
  3. 將其替換。
  4. 使用http_build_query建再次查詢
  5. 將這個查詢字符串主要網址

看到這個代碼。

$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
$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參數,這是你所需要的無論如何。