我发现了一些剥离查询字符串并向其中添加新值的代码,但我希望能够通过一组选项来执行此操作。有人能帮我修改这段代码吗?添加带有多个值的查询字符串变量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