分页时有什么方法可以保留我的GET参数。
我的问题是我有几个不同的网址,即
questions.php?sort=votes&author_id=1&page=3 index.php?sort=answers&style=question&page=4
我应该如何在分页类中创建指向页面上具有不同页码的页面的链接,但仍然保留网址的其他部分?
简而言之,您只需解析URL,然后在最后添加参数,或者如果参数已经存在,则将其替换。
$parts = parse_url($url) + array('query' => array()); parse_str($parts['query'], $query); $query['page'] = $page; $parts['query'] = http_build_str($query); $newUrl = http_build_url($parts);
此示例代码需要用于和的PHP HTTP模块。后者可以替换为第一个,如果没有安装模块,则可以使用PHP用户空间实现。http_build_urlhttp_build_strhttp_build_query
http_build_url
http_build_str
http_build_query
另一种选择是使用Net_URL2提供了各种URL操作接口的软件包:
Net_URL2
$op = new Net_URL2($url); $op->setQueryVariable('page', $page); $newUrl = (string) $op;
它更加灵活和富有表现力。