我有多个页面的分页功能。
而不是在函数中设置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
我该怎么办?
答案 0 :(得分:2)
$queryParams = $_GET;
$queryParams['page'] = $page_number;
$link = strtok($_SERVER['REQUEST_URI'],'?').'?'.http_build_query($queryParams);
答案 1 :(得分:0)
$link = strtok($_SERVER['REQUEST_URI'],'?').'?page='.$_GET['page']);
如果您想要action
部分,可以使用:
$link = strtok($_SERVER['REQUEST_URI'],'?').'?action=showthread&page='.$_GET['page']);
答案 2 :(得分:0)
您的方法并不是最好的,但对于临时解决方案,您可以使用此方法:
$url = 'http://xxx/forum/?action=showthread&id=181&page=2';
$new_url = preg_replace('/page=[\d+]/', 'page=3', $url);