您好,欢迎访问一九零五行业门户网

精美漂亮的php分页类代码

非常精美的一款php分页类,可以直接应用到分页系统上,是一款mysql数据库分页必备的一个工具,只需要将类文件和分页css样式嵌入即可实现精美分页。
这是一款简单,方便,功能齐全的分页类,可以根据自己的需要更改css样式文件以实现分页颜色的控制,利用php分页类,可以省去自己很多时间,只需要在分页的地方嵌入即可,下面看下使用方法:
1,在head里包含pager.css
代码如下:
2,在分页处进行类的实例化:
代码如下:
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:
代码如下:
----分页演示-----
getpagercontent();
//echo $pagestr;
$mypage=new pager(90,intval($currentpage));
$pagestr= $mypage->getpagercontent();
echo $pagestr;
?>
(2) pager.class.php:
代码如下:
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 {
$this->pageindex=1;
}elseif($this->pageindex > $this->totalpagescount)
{
$this->pageindex=$this->totalpagescount;
}
}
//$this->pageurl}={$i}
//{$this->currenturl}={$this->totalpages}
public function getpagercontent() {
$str =
;
//首页 上一页
if($this->pageindex==1)
{
$str .=首页 .\n;
$str .=上一页 .\n.\n;
}else
{
$str .=pageurl%7d=1 class=tips title=首页>首页 .\n;
$str .=pageurl%7d=%22.(%24this->pageindex-1).%22 class=tips title=上一页>上一页 .\n.\n;
}
/*
除首末后 页面分页逻辑
*/
//10页(含)以下
$currnt=;
if($this->totalpagescount {
for($i=1;$itotalpagescount;$i++)
{
if($i==$this->pageindex)
{ $currnt= class='current';}
else
{ $currnt=; }
$str .=pageurl%7d=%7b%24i%7d%20>$i.\n ;
}
}else //10页以上
{ if($this->pageindex {
for($i=1;$i {
if($i==$this->pageindex)
{ $currnt= class='current';}
else
{ $currnt=; }
$str .=pageurl%7d=%7b%24i%7d%20>$i.\n ;
}
$str.=…….\n;
for($i=$this->totalpagescount-3+1;$itotalpagescount;$i++)//功能1
{
$str .=pageurl%7d=%7b%24i%7d>$i.\n ;
}
}elseif($this->pageindex= 当前页 >= 3
{
for($i=1;$ipageindex+1);$i++)
{
if($i==$this->pageindex)
{ $currnt= class='current';}
else
{ $currnt=; }
$str .=pageurl%7d=%7b%24i%7d%20>$i.\n ;
}
$str.=…….\n;
for($i=$this->totalpagescount-3+1;$itotalpagescount;$i++)//功能1
{
$str .=pageurl%7d=%7b%24i%7d>$i.\n ;
}
}elseif(5pageindex && $this->pageindextotalpagescount-5 ) //当前页大于5,同时小于总页数-5
{
for($i=1;$i {
$str .=pageurl%7d=%7b%24i%7d>$i.\n ;
}
$str.=……;
for($i=$this->pageindex-1 ;$ipageindex+1 && $itotalpagescount-5+1;$i++)
{
if($i==$this->pageindex)
{ $currnt= class='current';}
else
{ $currnt=; }
$str .=pageurl%7d=%7b%24i%7d%20>$i.\n ;
}
$str.=……;
for($i=$this->totalpagescount-3+1;$itotalpagescount;$i++)
{
$str .=pageurl%7d=%7b%24i%7d>$i.\n ;
}
}else
{
for($i=1;$i {
$str .=pageurl%7d=%7b%24i%7d>$i.\n ;
}
$str.=…….\n;
for($i=$this->totalpagescount-5;$itotalpagescount;$i++)//功能1
{
if($i==$this->pageindex)
{ $currnt= class='current';}
else
{ $currnt=; }
$str .=pageurl%7d=%7b%24i%7d%20>$i.\n ;
}
}
}
/*
除首末后 页面分页逻辑结束
*/
//下一页 末页
if($this->pageindex==$this->totalpagescount)
{
$str .=\n.下一页.\n ;
$str .=末页.\n;
}else
{
$str .=\n.pageurl%7d=%22.(%24this->pageindex+1).%22 class=tips title=下一页>下一页 .\n;
$str .=pageurl%7d=%7b%24this->totalpagescount%7d class=tips title=末页>末页 .\n ;
}
$str .=
;
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;}
转载:
其它类似信息

推荐信息