1

我有多个页面的分页功能。

而不是在函数中设置 URL。例如mypaginatefunction($current_page_number, 'forum/?action=showthread&id=$threadid, $per_page,我只想让 PHP 弄清楚。

目前我正在使用:

$link = strtok($_SERVER['REQUEST_URI'],'?').'?'.http_build_query($_GET);
<a href=\"$link&page=$page_number\">$page_number</a>

但这并不那么好。它也会保留以前的 $_GET

例如,假设我在http://xxx/forum/?action=showthread&id=181

我按第 2 页http://xxx/forum/?action=showthread&id=181&page=2

但是如果我按第 3 页,它会变成:http://mysite/forum/?action=showthread&id=181&page=2&page=3

我只想&page=3

我应该怎么办?

4

3 回答 3

2
$queryParams = $_GET;
$queryParams['page'] = $page_number;
$link = strtok($_SERVER['REQUEST_URI'],'?').'?'.http_build_query($queryParams);
于 2013-07-20T11:53:40.060 回答
0
$link = strtok($_SERVER['REQUEST_URI'],'?').'?page='.$_GET['page']);

如果你想要这个action部分,你可以这样做:

$link = strtok($_SERVER['REQUEST_URI'],'?').'?action=showthread&page='.$_GET['page']);
于 2013-07-20T11:52:09.840 回答
0

您的方法不是最好的,但对于临时解决方案,您可以使用:

$url = 'http://xxx/forum/?action=showthread&id=181&page=2';
$new_url = preg_replace('/page=[\d+]/', 'page=3', $url);
于 2013-07-20T11:53:56.923 回答