PHP分页,只显示几个页面链接


PHP pagination, displaying only a few page links

我在分页部分的末尾,它被要求只允许底部有几个页码链接。如果当前页面存在,则在当前页面之前和之后各两个页面。

if($pagination->total_pages() > 1) {
if($pagination->has_previous_page()) {
    echo "<a href='"results.php?page=";
    echo $pagination->previous_page();
    echo "'">&laquo; Previous</a>";
}
for($i = 1; $i <= $pagination->total_pages(); $i++) {
    if($i == $page) {
        echo "<span class='"current'">{$i}</span>";
    } else {
        echo "<a href='"doc_list.php?page={$i}'">{$i}</a>";
    }
}
if($pagination->has_next_page()) {
    echo "<a href='"results.php?page=";
    echo $pagination->next_page();
    echo "'">Next &raquo;</a>";
}
}

我将非常感谢任何指导,因为我不知道如何解决这个问题。

要显示当前页面加/减2,首先计算要显示的最小和最大页码:

$min = max($page - 2, 1); // there are no pages < 1
$max = min($page + 2, $pagination->total_pages()); // and no pages > total_pages

然后显示链接:

for($i = $min; $i <= $max; ++$i) {
    if($i == $page) {
        echo "<span class='"current'">{$i}</span>";
    } else {
        echo "<a href='"doc_list.php?page={$i}'">{$i}</a>";
    }
}

您可能还想显示上面的第一个/上一个/下一个/最后一个页面链接,但在破解之前,我们需要有一个关于结果的规范。