精美漂亮的php分页类代码
2015-01-24信息快讯网
非常精美的一款php分页类,可以直接应用到分页系统上,是一款mysql数据库分页必备的一个工具,只需要将类文件和分页CSS样式嵌入即可实现精美分页。
这是一款简单,方便,功能齐全的分页类,可以根据自己的需要更改CSS样式文件以实现分页颜色的控制,利用php分页类,可以省去自己很多时间,只需要在分页的地方嵌入即可,下面看下使用方法:
1,在head里包含pager.css
<link href="pager.css" type="text/css" rel="stylesheet" />
2,在分页处进行类的实例化:
<?php include "pager.class.php"; $CurrentPage=isset($_GET['page'])?$_GET['page']:1; //die($CurrentPage); $myPage=new pager(1300,intval($CurrentPage)); $pageStr= $myPage->GetPagerContent(); //echo $pageStr; $myPage=new pager(90,intval($CurrentPage)); $pageStr= $myPage->GetPagerContent(); echo $pageStr; ?>
3,读取mysql数据库和分页计算文件需要自己写出来。例如:
$info=mysql_query("select * from member order by id desc limit $offset,$info_num"); 这样才能调到 mysql 数据库和当前页码等。
下面是一共包含的三个文件:(1) index.php:调用分页类,显示分页 (2) pager.class.php:php分页类 (3)pager.css:css样式美化文件
(1) index.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; //die($CurrentPage); $myPage=new pager(1300,intval($CurrentPage)); $pageStr= $myPage->GetPagerContent(); //echo $pageStr; $myPage=new pager(90,intval($CurrentPage)); $pageStr= $myPage->GetPagerContent(); echo $pageStr; ?> </body> </html>
(2) 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() { $str = "<div class=\"Pagination\">"; //首页 上一页 if($this->pageIndex==1) { $str .="<a href='javascript:void(0)' class='tips' title='首页'>首页</a> "."\n"; $str .="<a href='javascript:void(0)' class='tips' title='上一页'>上一页</a> "."\n"."\n"; }else { $str .="<a href='{$this->pageUrl}=1' class='tips' title='首页'>首页</a> "."\n"; $str .="<a href='{$this->pageUrl}=".($this->pageIndex-1)."' class='tips' title='上一页'>上一页</a> "."\n"."\n"; } /* 除首末后 页面分页逻辑 */ //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>"."\n" ; } }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>"."\n" ; } $str.="<span class=\"dot\">……</span>"."\n"; for($i=$this->totalPagesCount-3+1;$i<=$this->totalPagesCount;$i++)//功能1 { $str .="<a href='{$this->pageUrl}={$i}' >$i</a>"."\n" ; } }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>"."\n" ; } $str.="<span class=\"dot\">……</span>"."\n"; for($i=$this->totalPagesCount-3+1;$i<=$this->totalPagesCount;$i++)//功能1 { $str .="<a href='{$this->pageUrl}={$i}' >$i</a>"."\n" ; } }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>"."\n" ; } $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>"."\n" ; } $str.="<span class=\"dot\">……</span>"; for($i=$this->totalPagesCount-3+1;$i<=$this->totalPagesCount;$i++) { $str .="<a href='{$this->pageUrl}={$i}' >$i</a>"."\n" ; } }else { for($i=1;$i<=3;$i++) { $str .="<a href='{$this->pageUrl}={$i}' >$i</a>"."\n" ; } $str.="<span class=\"dot\">……</span>"."\n"; 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>"."\n" ; } } } /* 除首末后 页面分页逻辑结束 */ //下一页 末页 if($this->pageIndex==$this->totalPagesCount) { $str .="\n"."<a href='javascript:void(0)' class='tips' title='下一页'>下一页</a>"."\n" ; $str .="<a href='javascript:void(0)' class='tips' title='末页'>末页</a>"."\n"; }else { $str .="\n"."<a href='{$this->pageUrl}=".($this->pageIndex+1)."' class='tips' title='下一页'>下一页</a> "."\n"; $str .="<a href='{$this->pageUrl}={$this->totalPagesCount}' class='tips' title='末页'>末页</a> "."\n" ; } $str .= "</div>"; return $str; } /** * 获得实例 * @return */ // static public function getInstance() { // if (is_null ( self::$_instance )) { // self::$_instance = new pager (); // } // return self::$_instance; // } } ?>
(3) 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; width:95px; height:21px; line-height:21px; margin-left:10px; display:inline} .Pagination a.tips{_padding:4px 7px 1px;}
转载:http://60ie.net/article/8/365.html
codeigniter中测试通过的分页类示例
ThinkPHP分页类使用详解
一个简单且很好用的php分页类
php读取mysql中文数据出现乱码的解决方法
JoshChen_php新手进阶高手不可或缺的规范介绍
php漏洞之跨网站请求伪造与防止伪造方法
PHP Global定义全局变量使用说明
php生成图形验证码几种方法小结
thinkphp 一个页面使用2次分页的实现方法
PHP分页效率终结版(推荐)
解析CI的AJAX分页 另类实现方法
关于使用coreseek并为其做分页的介绍
用php制作简单分页(从数据库读取记录)的方法详解
PHP常用的文件操作函数经典收藏
php更新mysql后获取影响的行数发生异常解决方法
php页面跳转代码 输入网址跳转到你定义的页面
PHP 数组和字符串互相转换实现方法
php中将html中的br换行符转换为文本输入中的换行符
PHP字符过滤函数去除字符串最后一个逗号(rtrim)
仿Aspnetpager的一个PHP分页类代码 附源码下载
php中长文章分页显示实现代码
php 解决旧系统 查出所有数据分页的类
无JS,完全php面向过程数据分页实现代码
PHP 文本文章分页代码 按标记或长度(不涉及数据库)
西安南郊唐代贵妇墓考古成果公布 罕见精美水晶项链重见天日