当前位置:首页> PHP教程> php进阶
关键字:
文章内容
分页类......分享
 
 
修改时间:[2011/10/16 03:43]    阅读次数:[1863]    发表者:[起缘]
 
由于是上班时候写的,所以如果全部由部贴出来恐怕对不起公司,所以我把其中的表单跳转删去了。别见怪哦。。。

格式写法是比较标准的了

PHP代码:--------------------------------------------------------------------------------
<?php
/********** 
| +--------------------------------------------------- 
| CLASS NAME: PageBar 
| +--------------------------------------------------- 
| Author: Arvan [E-mail:[email protected] QQ:8817776] 
| Create date: 2003-7-17 
| Note: 
| Do for pagination 
| +--------------------------------------------------- 
| Warning: no... 
| +--------------------------------------------------- 
**********/ 

class PageBar 
{ 
var 
$total; 
var 
$onepage; 
var 
$num; 
var 
$pagecount; 
var 
$total_page; 
var 
$offset; 
var 
$linkhead; 

function 
PageBar($total, $onepage, $form_vars='') 
{ 
$pagecount = $_GET['pagecount']; 
$this->total = $total; 
$this->onepage = $onepage; 
$this->total_page = ceil($total/$onepage); 

if (empty(
$pagecount)) 
{ 
$this->pagecount = 1; 
$this->offset = 0; 
} 
else 
{ 
$this->pagecount = $pagecount; 
$this->offset = ($pagecount-1)*$onepage; 
} 

if (!empty(
$form_vars)) 
{ 
$vars = explode("|", $form_vars); 
$chk = $vars[0]; 
$chk_value = $_POST['$chk']; 

if (empty(
$chk_value)) 
{ 
$formlink = ""; 
} 
else 
{ 
for (
$i=0; $i<sizeof($vars); $i++) 
{ 
$var = $vars[$i]; 
$value = $_POST['$var']; 
$addchar = $vars."=".$value; 
$addstr = $addstr.$addchar."&"; 
} 

$formlink = "&".substr($addstr, 0, sizeof($addstr)-1); 
} 

} 
else 
{ 
$formlink = ""; 
} 

$linkarr = explode("pagecount=", $_SERVER['QUERY_STRING']); 
$linkft = $linkarr[0]; 

if (empty(
$linkft)) 
{ 
$this->linkhead = $_SERVER['PHP_SELF']."?".$formlink; 
} 
else 
{ 
$this->linkhead = $_SERVER['PHP_SELF']."?".$linkft.$formlink; 
} 

} 
#End function PageBar(); 

function offset() 
{ 
return 
$this->offset; 
} 
#End function offset(); 

function pre_page($char='') 
{ 
$linkhead = $this->linkhead; 
$pagecount = $this->pagecount; 
if (empty(
$char)) 
{ 
$char = "[<]"; 
} 

if (
$pagecount>1) 
{ 
$pre_page = $pagecount - 1; 
return 
"<a href="$linkhead"."pagecount=$pre_page">$char</a>"; 
} 
else 
{ 
return 
' '; 
} 

} 
#End function pre_page(); 

function next_page($char='') 
{ 
$linkhead = $this->linkhead; 
$total_page = $this->total_page; 
$pagecount = $this->pagecount; 
if (empty(
$char)) 
{ 
$char = "[>]"; 
} 
if (
$pagecount<$total_page) 
{ 
$next_page = $pagecount + 1; 
return 
"<a href="$linkhead"."pagecount=$next_page">$char</a>"; 
} 
else 
{ 
return 
' '; 
} 
} 
#End function next_page(); 

function num_bar($num='', $color='', $left='', $right='') 
{ 
$num = (empty($num))?10:$num; 
$this->num = $num; 
$mid = floor($num/2); 
$last = $num - 1; 
$pagecount = $this->pagecount; 
$totalpage = $this->total_page; 
$linkhead = $this->linkhead; 
$left = (empty($left))?"[":$left; 
$right = (empty($right))?"]":$right; 
$color = (empty($color))?"#ff0000":$color; 
$minpage = (($pagecount-$mid)<1)?1<img src="images/smilies/frown.gif" border="0" alt="">$pagecount-$mid); 
$maxpage = $minpage + $last; 
if (
$maxpage>$totalpage) 
{ 
$maxpage = $totalpage; 
$minpage = $maxpage - $last; 
$minpage = ($minpage<1)?1:$minpage; 
} 

for (
$i=$minpage; $i<=$maxpage; $i++) 
{ 
$char = $left.$i.$right; 
if (
$i==$pagecount) 
{ 
$char = "<font color='$color'>$char</font>"; 
} 

$linkchar = "<a href='$linkhead"."pagecount=$i'>".$char."</a>"; 
$linkbar = $linkbar.$linkchar; 
} 

return 
$linkbar; 
} 
#End function num_bar(); 

function pre_group($char='') 
{ 
$pagecount = $this->pagecount; 
$linkhead = $this->linkhead; 
$num = $this->num; 
$mid = floor($num/2); 
$minpage = (($pagecount-$mid)<1)?1<img src="images/smilies/frown.gif" border="0" alt="">$pagecount-$mid); 
$char = (empty($char))?"[<<]":$char; 
$pgpagecount = ($minpage>$num)?$minpage-$mid:1; 
return 
"<a href='$linkhead"."pagecount=$pgpagecount'>".$char."</a>"; 
} 
#End function pre_group(); 

function next_group($char='') 
{ 
$pagecount = $this->pagecount; 
$linkhead = $this->linkhead; 
$totalpage = $this->total_page; 
$num = $this->num; 
$mid = floor($num/2); 
$last = $num; 
$minpage = (($pagecount-$mid)<1)?1<img src="images/smilies/frown.gif" border="0" alt="">$pagecount-$mid); 
$maxpage = $minpage + $last; 
if (
$maxpage>$totalpage) 
{ 
$maxpage = $totalpage; 
$minpage = $maxpage - $last; 
$minpage = ($minpage<1)?1:$minpage; 
} 

$char = (empty($char))?"[>>]":$char; 
$ngpagecount = ($totalpage>$maxpage+$last)?$maxpage + $mid:$totalpage; 

return 
"<a href='$linkhead"."pagecount=$ngpagecount'>".$char."</a>"; 
} 
#End function next_group(); 

function whole_num_bar($num='', $color='') 
{ 
$num_bar = $this->num_bar($num, $color); 
$pre_group = $this->pre_group(); 
$pre_page = $this->pre_page(); 
$next_page = $this->next_page(); 
$next_group = $this->next_group(); 

return 
$pre_group.$pre_page.$num_bar.$next_page.$next_group; 
} 
#End function whole_bar(); 


} 
#End class PageBar; 


/***** 
//example 

$total = 1000; 
$onepage = 20; 

$pb = new PageBar($total, $onepage); 
$offset = $pb->offset(); 
$pagebar = $pb->whole_num_bar(); 
echo $offset."<br>".$pagebar; 

return: 
0 
[<<] [1][2][3][4][5][6][7][8][9][10][>][>>] 

*****/ 
?> 

(非常全面的一个php技术网站, 有相当丰富的文章和源代码.)