我發現了一些剝離查詢字符串並向其中添加新值的代碼,但我希望能夠通過一組選項來執行此操作。有人能幫我修改這段代碼嗎?添加帶有多個值的查詢字符串變量PHP
當前代碼:
function add_querystring_var($url, $key, $value) {
$url = preg_replace('/(.*)(\?|&)' . $key . '=[^&]+?(&)(.*)/i', '$1$2$4', $url . '&');
$url = substr($url, 0, -1);
$value = $value ? "=".urlencode($value) : '';
if (strpos($url, '?') === false)
return ($url . '?' . $key . $value);
else
return ($url . '&' . $key . $value);
}
而且我想要它做一個foreach對於給定的每個鍵和值,然後重新生成新的URL。
例子:add_querystring_var(curPageURL(), array("order","sort"), array("swn","DESC"))
所以我想下面的網址http://www.example.com/students
通過例如把上面的時候會返回http://www.example.com/students?order=swn&sort=DESC
有誰知道我能做到這一點?我是這個PHP領域的新手。 :)
UPDATE: 我忘了提有時URL可能有其他疑問在裏面,所以我想它來代替我進入我的數組的人。
例1:http://www.example.com/students?page=2
需要變成http://www.example.com/students?page=2&order=swn&sort=DESC
例2:http://www.example.com/students?page=2&order=name&sort=ASC
需要變成http://www.example.com/students?page=2&order=swn&sort=DESC
爲什麼不使用內建的'http_build_query()'函數? – Barmar
@Barmar我剛剛發現之前,但不知道如何在這種情況下使用它?有什麼建議麼? – dpDesignz