php 简单分页类

本文介绍了一个简单的PHP分页类实现方法,通过设置每页显示的记录数和总记录数来生成分页链接。该分页类支持自定义上一页和下一页的文字,并能根据当前页数动态显示前后若干页的链接。

header("content-type:text/html;charset=utf-8");

/**
* [分页类][date 2016/9/11]
* @author Cpath
* @link http://www.php.com
* @since Version 1.0
*/
/**************************************************/

//地址栏链接合拼
//配置项灵活处理

/*************************************************/

class Page{

    private $page;        //当前页
    private $PageTotal;      //总页数
    private $offset='3';      //偏移量
    //private $prev;        //上一页
    //private $next;        //下一页
    private $PageCount;   //数据数量
    private $config=array(
            'prev'=>'<&lt',
            'next'=>'>&gt'

        );//分页显示制定

    public function __construct($PageCount,$PageNum){
            $this->PageCount=$PageCount;
            $this->PageNum=$PageNum;
            $this->page=$page=isset($_GET['p']) ? $_GET['p'] : 1;

    }


    /**
     * [PageShow ]
     * @param PageCount
     * @param PageNum
     */
    public  function PageShow(){//(总条目书,每页条数)
        $this->PageTotal=$PageTotal=ceil($this->PageCount/$this->PageNum);

        //上一页
        $prev=''; 
        if($this->page>1){

            $PagePrev=$this->page-1<=0 ? 1 : $this->page-1;
            $prev='<a href="?p='.$PagePrev.'">'.$this->config['prev'].'</a>';

        }

        //下一页
        $next='';
        if($this->page<$this->PageTotal){
            $PageNext=$this->page+1;
            $next.='<a href="?p='.$PageNext.'">'.$this->config['next'].'</a>';

        }

        $LefePage=max($this->page-$this->offset,1);//当前页左边
        $RightPage=min($this->page+$this->offset,$PageTotal);//当前页右边
        $PageLink='';
        for($i=$LefePage;$i<=$RightPage;$i++){

            $PageLink.='  <a href="?p='.$i.'">'.$i.'</a>  ';
        }

        $ShowData='第'.$this->page.'页/共'.$this->PageTotal.'页';
        return $ShowData.$prev.$PageLink.$next;

    }

    /**
     * [SetConfig 分页链接设置]
     */
    public function SetConfig($config){
        foreach ($config as $key => $value) {
            $this->config[$key]=$value;
        }

    }




}
/**************************************************/
//虚拟数据
$config['prev']='上一页';
$config['next']='下一页';
/**************************************************/
//实例化
$page=new Page(200,10);
$page->SetConfig($config);
$p=$page->PageShow();

echo $p;



//上一页  1 2 3 4 5 6   下一页

//$this->page=$page;
//$LefePage=$this->page-3<1 ? 1 : $this->page-3 ;
//$RightPage=$this->page+3>$this->PageTotal ? $this->PageTotal : $this->page+3;
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值