9
pagerange
page_range
SYNOPSIS
page_range($page, $npages, $offset=1)
DESCRIPTION
page_range returns an array of page numbers to display in a page number selector.
The current page is $page, the total number of pages is $npages, and $offset specifies the number of page numbers displayed before and after the current page.
EXAMPLE
php > require 'library/pagerange.php';
php > print_r(page_range(8, 20));
Array
(
[0] => 1
[1] => 7
[2] => 8
[3] => 9
[4] => 20
)
CODE
- function page_range($page, $npages, $offset=1) {
- $range=2*$offset+1;
- if ($npages <= $range+$offset) {
- $pagenums=range(1, $npages);
- }
- else if (($page - $offset) <= 2) {
- $pagenums=array_merge(range(1, $range+1), array($npages));
- }
- else if (($page + $offset) >= ($npages-1)) {
- $pagenums=array_merge(array(1), range($npages-$range, $npages));
- }
- else {
- $pagenums=array_merge(array(1), range($page-$offset, $page+$offset), array($npages));
- }
- return $pagenums;
- }
Comments