【发布时间】:2011-06-11 02:29:38
【问题描述】:
我在处理当前 URL 查询字符串以在末尾添加额外参数时遇到了一个小问题。
例如,假设产品有一个类别布局,URL 将是:
index.php?category=3&type=5
现在,在该页面上,我有一个用于表格或网格布局的链接。在我目前拥有的那些网址中:
<a href="index.php?<?php echo preg_replace($array,'',$_SERVER['QUERY_STRING']); ?>&layout=grid" ...
然后,我也对表 href 执行相同的操作。同样在我的数组中,我刚刚:
$array = array ( '/&layout=table/', '/&layout=grid/' )
这是正确的方法,还是有更好的方法?我问是因为没有preg_replace,每次单击它都会继续添加相同的layout参数,所以它也会显示上一个参数,然后是下一个,然后是下一个..而不删除以前的layout参数。
对此的任何见解将不胜感激。
编辑: 感谢下面的答案,我创建了一个小函数:
function buildQuery($key,$value) {
$params = $_GET;
$params[$key] = $value;
return http_build_query($params);
}
那么它只是一个问题:
<a href="index.php?<?php echo buildQuery('layout','grid'); ?>">grid</a>
这可能看起来毫无意义,但我喜欢在没有额外设置变量的情况下拥有我的视图/模板文件。我是一个干净的怪胎。我什至可能会返回“index.php?”有了它,我就可以更懒了,反正现在可以玩了:)..
【问题讨论】:
标签: php url query-string