<?php
/*
* 动态创建导航条
*/
class PageClass
{
private $total_rows;//数据库总的记录数
private $pagesize = 5; //每页显示多少数据
private $now_page = 3; //当前是第几页
private $url = ''; //跳转页面地址
public function __set($p, $v){
if(property_exists($this, $p)){
$this -> $p =$v;
}
}
//提供set get 方法赋值,读取值
public function __get($p){
if(property_exists($this, $p)){
return $this -> $p;
}
}
//创建分页导航
public function create(){
$first = 1;
$url = $this->url.'?page=';
//首页导航
$page = <<<HTML
<ul class="pagination">
<li><a href="{$url}{$first}">首页</a></li>
HTML;
//动态创建中间的页数
//计算除去首页和尾页之外 应该生成多少页total_pages;ceil 向上取整函数
$page_count = ceil($this->total_rows/$this->pagesize);
//now_page<=4时 如果总页数>=7 就显示1-7页 否则显示1到最后一页
if($this->now_page <= 4){
if($page_count >=7 ){
for($i = 1; $i <= 7; $i++){
//输出到当前页的页码时高亮输出
if($i == $this->now_page){
$page .= <<<HTML
<li class="active"><a href="$url$i">$i</a> </li>
HTML;
continue;
}
$page .= <<<HTML
<li><a href="$url$i">$i</a> </li>
HTML;
}
}
else{
for($i=1; $i <= $page_count; $i++){
//输出到当前页的页码时高亮输出
if($i == $this->now_page){
$page .= <<<HTML
<li class="active"><a href="$url$i">$i</a> </li>
HTML;
continue;
}
$page .= <<<HTML
<li><a href="$url$i">$i</a> </li>
HTML;
}
}
}
//now_page>=total_pages-3时 $now_page-
elseif($this->now_page >= $page_count-3){
for($i = $this->now_page-3; $i <= $page_count; $i++){
//当前页的页码高亮输出
if($i == $this->now_page){
$page .= <<<HTML
<li class="active"><a href="$url$i">$i</a> </li>
HTML;
continue;
}
$page .= <<<HTML
<li><a href="$url$i">$i</a> </li>
HTML;
}
}
//当前页数在中间,显示当前页的前三页和后三夜
else{
for($i = $this->now_page-3; $i <= $this->now_page+3; $i++){
//当前页的页码高亮输出
if($i == $this->now_page){
$page .= <<<HTML
<li class="active"><a href="$url$i">$i</a> </li>
HTML;
continue;
}
$page .= <<<HTML
<li><a href="$url$i">$i</a> </li>
HTML;
}
}
//尾页的导航按钮
$page.=<<<HTML
<li><a href="$url$page_count">尾页</a></li>
</ul>
HTML;
return $page;
}
}
PHP分页类
最新推荐文章于 2021-04-03 22:55:07 发布