获取分页的当前URL

时间:2013-07-20 11:46:34

标签: php

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

而不是在函数中设置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

我该怎么办?

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);