php 计算分页的类
<?
class pagination
{
public function __construct()
{
}
public function calculate_pages($total_rows, $rows_per_page, $page_num)
{
$arr = array();
// calculate last page
$last_page = ceil($total_rows / $rows_per_page);
// make sure we are within limits
$page_num = (int) $page_num;
if ($page_num < 1)
{
$page_num = 1;
}
elseif ($page_num > $last_page)
{
$page_num = $last_page;
}
$upto = ($page_num - 1) * $rows_per_page;
$arr['limit'] = 'LIMIT '.$upto.',' .$rows_per_page;
$arr['current'] = $page_num;
if ($page_num == 1)
$arr['previous'] = $page_num;
else
$arr['previous'] = $page_num - 1;
if ($page_num == $last_page)
$arr['next'] = $last_page;
else
$arr['next'] = $page_num 1;
$arr['last'] = $last_page;
$arr['info'] = 'Page ('.$page_num.' of '.$last_page.')';
$arr['pages'] = $this->get_surrounding_pages($page_num, $last_page, $arr['next']);
return $arr;
}
private function get_surrounding_pages($page_num, $last_page, $next)
{
$arr = array();
$show = 5; // how many boxes
// at first
if ($page_num == 1)
{
// case of 1 page only
if ($next == $page_num) return array(1);
for ($i = 0; $i < $show; $i )
{
if ($i == $last_page) break;
array_push($arr, $i 1);
}
return $arr;
}
// at last
if ($page_num == $last_page)
{
$start = $last_page - $show;
if ($start < 1) $start = 0;
for ($i = $start; $i < $last_page; $i )
{
array_push($arr, $i 1);
}
return $arr;
}
// at middle
$start = $page_num - $show;
if ($start < 1) $start = 0;
for ($i = $start; $i < $page_num; $i )
{
array_push($arr, $i 1);
}
for ($i = ($page_num 1); $i < ($page_num $show); $i )
{
if ($i == ($last_page 1)) break;
array_push($arr, $i);
}
return $arr;
}
}
?>2. [代码]使用方法
$p = new pagination(); $arr = $p->calculate_pages(70, 10, 1);
3. [代码]返回结果
Array
(
[limit] => LIMIT 0,10
[current] => 1
[previous] => 1
[next] => 2
[last] => 7
[info] => Page (1 of 7)
[pages] => Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
[4] => 5
)
)
以上就是PHP 计算分页的类的内容,更多相关内容请关注PHP中文网(www.php.cn)!
立即学习“PHP免费学习笔记(深入)”;
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号