我发现了一些用于剥离查询字符串并向其添加新值的代码,但我希望能够使用一组选项来执行此操作。有人可以帮我修改这段代码吗?
当前代码:
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
所以我希望通过上面的示例返回以下 URLhttp://www.example.com/students?order=swn&sort=DESC
有谁知道我该怎么做?我是 PHP 领域的新手。:)
更新: 我忘了提到有时 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