zoukankan      html  css  js  c++  java
  • php 分页类(1)

    inter.php

    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>----分页演示-----</title>
    <link href="pager.css" type="text/css" rel="stylesheet" />
    </head>
    <body>
    <?php
    include "pager.class.php";
    $CurrentPage=isset($_GET['page'])?$_GET['page']:1;
    $myPage=new pager(120,intval($CurrentPage));
    $pageStr= $myPage->GetPagerContent();
    echo $pageStr;
    // $myPage=new pager(90,intval($CurrentPage));
    // $pageStr= $myPage->GetPagerContent();
    // echo $pageStr;
    ?>
    </body>
    </html>

    pager.css

    body,html{ padding:0px; margin:0px; color:#333333; font-family:"宋体",Arial,Lucida,Verdana,Helvetica,sans-serif; font-size:12px; line-height:150%;}

    h1,h2,h3,h4,h5,h6,ul,li,dl,dt,dd,form,img,p,label{margin:0; padding:0; border:none; list-style-type:none;}

    /**前台分页样式**/

    .Pagination {margin:10px 0 0;padding:5px 0;text-align:rightright; height:20px; line-height:20px; font-family:Arial, Helvetica, sans-serif,"宋体";}

    .Pagination a {margin-left:2px;padding:2px 7px 2px;}

    .Pagination .dot{ border:medium none; padding:4px 8px}

    .Pagination a:link, .Pagination a:visited {border:1px solid #dedede;color:#696969;text-decoration:none;}

    .Pagination a:hover, .Pagination a:active, .Pagination a.current:link, .Pagination a.current:visited {border:1px solid #dedede;color:#fff; background-color:#ff6600; background-image:none; border:#ff6600 solid 1px;}

    .Pagination .selectBar{ border:#dedede solid 1px; font-size:12px; 95px; height:21px; line-height:21px; margin-left:10px; display:inline}

    .Pagination a.tips{_padding:4px 7px 1px;}

    pager.class.php

    <?php
    /*
    * PHP分页类
    * @package Page
    * @Created 2013-03-27
    * @Modify 2013-03-27
    * @link http://www.60ie.net
    * Example:
    $myPage=new Pager(1300,intval($CurrentPage));
    $pageStr= $myPage->GetPagerContent();
    echo $pageStr;
    */
    class Pager {
    private $pageSize = 10;
    private $pageIndex;
    private $totalNum;

    private $totalPagesCount;

    private $pageUrl;
    private static $_instance;

    public function __construct($p_totalNum, $p_pageIndex, $p_pageSize = 10,$p_initNum=3,$p_initMaxNum=5) {
    if (! isset ( $p_totalNum ) || !isset($p_pageIndex)) {
    die ( "pager initial error" );
    }

    $this->totalNum = $p_totalNum;
    $this->pageIndex = $p_pageIndex;
    $this->pageSize = $p_pageSize;
    $this->initNum=$p_initNum;
    $this->initMaxNum=$p_initMaxNum;
    $this->totalPagesCount= ceil($p_totalNum / $p_pageSize);
    $this->pageUrl=$this->_getPageUrl();

    $this->_initPagerLegal();
    }


    /**
    * 获取去除page部分的当前URL字符串
    *
    * @return String URL字符串
    */
    private function _getPageUrl() {
    $CurrentUrl = $_SERVER["REQUEST_URI"];
    $arrUrl = parse_url($CurrentUrl);
    $urlQuery = $arrUrl["query"];
    if($urlQuery){
    $urlQuery = ereg_replace("(^|&)page=" . $this->pageIndex, "", $urlQuery);
    $CurrentUrl = str_replace($arrUrl["query"], $urlQuery, $CurrentUrl);

    if($urlQuery){
    $CurrentUrl.="&page";
    }
    else $CurrentUrl.="page";

    } else {
    $CurrentUrl.="?page";
    }

    return $CurrentUrl;

    }
    /*
    *设置页面参数合法性
    *@return void
    */
    private function _initPagerLegal()
    {
    if((!is_numeric($this->pageIndex)) || $this->pageIndex<1)
    {
    $this->pageIndex=1;
    }elseif($this->pageIndex > $this->totalPagesCount)
    {
    $this->pageIndex=$this->totalPagesCount;
    }

    }
    //$this->pageUrl}={$i}
    //{$this->CurrentUrl}={$this->TotalPages}
    public function GetPagerContent() {
    var_dump($this->pageIndex);
    $str = "<div class="Pagination">";
    //首页 上一页
    if($this->pageIndex==1)
    {
    $str .="<a href='javascript:void(0)' class='tips' title='首页'>首页</a> "." ";
    $str .="<a href='javascript:void(0)' class='tips' title='上一页'>上一页</a> "." "." ";
    }else
    {
    $str .="<a href='{$this->pageUrl}=1' class='tips' title='首页'>首页</a> "." ";
    $str .="<a href='{$this->pageUrl}=".($this->pageIndex-1)."' class='tips' title='上一页'>上一页</a> "." "." ";
    }
    /*
    除首末后 页面分页逻辑
    */
    //10页(含)以下
    $currnt="";
    if($this->totalPagesCount<=10)
    {
    for($i=1;$i<=$this->totalPagesCount;$i++)
    {
    if($i==$this->pageIndex)
    { $currnt=" class='current'";}
    else
    { $currnt=""; }
    $str .="<a href='{$this->pageUrl}={$i} ' {$currnt}>$i</a>"." " ;
    }
    }else //10页以上
    { if($this->pageIndex<3) //当前页小于3
    {
    for($i=1;$i<=3;$i++)
    {
    if($i==$this->pageIndex)
    { $currnt=" class='current'";}
    else
    { $currnt=""; }
    $str .="<a href='{$this->pageUrl}={$i} ' {$currnt}>$i</a>"." " ;
    }
    $str.="<span class="dot">……</span>"." ";
    for($i=$this->totalPagesCount-3+1;$i<=$this->totalPagesCount;$i++)//功能1
    {
    $str .="<a href='{$this->pageUrl}={$i}' >$i</a>"." " ;
    }
    }elseif($this->pageIndex<=5) // 5 >= 当前页 >= 3
    {
    for($i=1;$i<=($this->pageIndex+1);$i++)
    {
    if($i==$this->pageIndex)
    { $currnt=" class='current'";}
    else
    { $currnt=""; }
    $str .="<a href='{$this->pageUrl}={$i} ' {$currnt}>$i</a>"." " ;
    }
    $str.="<span class="dot">……</span>"." ";

    for($i=$this->totalPagesCount-3+1;$i<=$this->totalPagesCount;$i++)//功能1
    {
    $str .="<a href='{$this->pageUrl}={$i}' >$i</a>"." " ;
    }
    }elseif(5<$this->pageIndex && $this->pageIndex<=$this->totalPagesCount-5 ) //当前页大于5,同时小于总页数-5
    {
    for($i=1;$i<=3;$i++)
    {
    $str .="<a href='{$this->pageUrl}={$i}' >$i</a>"." " ;
    }
    $str.="<span class="dot">……</span>";
    for($i=$this->pageIndex-1 ;$i<=$this->pageIndex+1 && $i<=$this->totalPagesCount-5+1;$i++)
    {
    if($i==$this->pageIndex)
    { $currnt=" class='current'";}
    else
    { $currnt=""; }
    $str .="<a href='{$this->pageUrl}={$i} ' {$currnt}>$i</a>"." " ;
    }
    $str.="<span class="dot">……</span>";

    for($i=$this->totalPagesCount-3+1;$i<=$this->totalPagesCount;$i++)
    {
    $str .="<a href='{$this->pageUrl}={$i}' >$i</a>"." " ;
    }
    }else
    {
    for($i=1;$i<=3;$i++)
    {
    $str .="<a href='{$this->pageUrl}={$i}' >$i</a>"." " ;
    }
    $str.="<span class="dot">……</span>"." ";

    for($i=$this->totalPagesCount-5;$i<=$this->totalPagesCount;$i++)//功能1
    {
    if($i==$this->pageIndex)
    { $currnt=" class='current'";}
    else
    { $currnt=""; }
    $str .="<a href='{$this->pageUrl}={$i} ' {$currnt}>$i</a>"." " ;
    }
    }

    }
    /*
    除首末后 页面分页逻辑结束
    */
    //下一页 末页
    if($this->pageIndex==$this->totalPagesCount)
    {
    $str .=" "."<a href='javascript:void(0)' class='tips' title='下一页'>下一页</a>"." " ;
    $str .="<a href='javascript:void(0)' class='tips' title='末页'>末页</a>"." ";
    }else
    {
    $str .=" "."<a href='{$this->pageUrl}=".($this->pageIndex+1)."' class='tips' title='下一页'>下一页</a> "." ";
    $str .="<a href='{$this->pageUrl}={$this->totalPagesCount}' class='tips' title='末页'>末页</a> "." " ;
    }

    $str .= "</div>";
    return $str;
    }
    /**
    * 获得实例
    * @return
    */
    // static public function getInstance() {
    // if (is_null ( self::$_instance )) {
    // self::$_instance = new pager ();
    // }
    // return self::$_instance;
    // }


    }
    ?>

  • 相关阅读:
    H3C BGP配置10BGP安全功能典型配置举例
    H3C BGP配置9调整和优化BGP网络典型配置举例1BGP负载分担配置
    H3C BGP配置11 BGP网络的可靠性典型配置举例1BGP GR配置
    H3C BGP配置9调整和优化BGP网络典型配置举例2BGP AddPath配置
    vue移动端适配postcsspxtorem
    .net 技术站点(转载)
    邯郸.net俱乐部
    存储过程从入门到熟练(多个存储过程完整实例及调用方法)_AX 转载
    gridview中删除记录的处理
    邯郸.NET俱乐部正式成立了
  • 原文地址:https://www.cnblogs.com/lijiageng/p/6030636.html
Copyright © 2011-2022 走看看