【问题标题】:What is the best method of maintaining a large query string?维护大型查询字符串的最佳方法是什么?
【发布时间】:2010-09-22 07:37:45
【问题描述】:
在我正在制作的几个 PHP 应用程序中,我需要为表的过滤器维护一个很长的查询字符串。
我只想在每次过滤器更改时更改一个或多个 GET 变量,而查询字符串的其余部分保持不变。
我有一些关于如何做到这一点的想法,包括每次更改过滤器时使用 javascript 构建查询字符串,或者在会话变量中维护查询字符串,然后从那里进行更改。
我希望您能就如何做到这一点的最佳方式提出意见或经验。
谢谢!
【问题讨论】:
标签:
php
javascript
get
query-string
【解决方案1】:
如果你有 GET 数组中的所有参数,为什么不构建一个从它们生成查询字符串的函数?
$params = array('key' => 'val', 'oth' => 'inn');
foreach($params as $key => $param) $string .= '&'.$key.'='.$val;
【解决方案2】:
是的,使用关联数组来存储键到值的映射。然后你可以很容易地改变一个。这些在 PHP 和 Javascript 中都得到了很好的支持,所以你很好。
您只需要编写将数组输出为查询字符串的函数。
我曾经这样做过一次(现在我每次都这样做):alphabetize(或以其他方式排序)查询字符串中的参数。为什么?如果同一页面始终具有相同的 URL/查询字符串,那将会很方便。如果您编写测试,则更容易断言查询字符串匹配。否则,您将受制于关联数组实现的遍历顺序。