交流: 一个我经常用的分页函数
/**
* Function: listpage($$$)
* AboutIt: 分页示例
* @return: HTML Page list
* Author: Aren Liu QQ:340004 2002/10/
*/
//这里用到了第三个参数,一个特殊需要,你可以理解为屏蔽总页数
//当然,这第三个参数一般不用:)_
function listpage($num,$prog,$real_num=0) {
global $list_num,$list_page_num,$page,$spn;
$RETURNS = "";
if(empty($spn) || (!isset($spn))) $spn = 1; // 起始拆分页
if(empty($page) || (!isset($page))) $page = 1;
$all_pnum = ceil($num/$list_num); // 总页数
if($all_pnum <= 1) {
if ($num == 0) $page = 0;
if ($real_num>0) $num=$real_num;
$RETURNS .= " 共有 <b>$num</b> 条记录,共 <b>$all_pnum</b> 页,第 <b>$page</b> 页\n";
return $RETURNS;
}
$split_pnum = ceil($all_pnum/$list_page_num); // 总拆分页数
$page = (int) $page;
if($page < 1 || $page >$all_pnum) {
$page = 1;
}
if($spn > $split_pnum) $spn = $split_pnum;
if($spn < 1) $spn = 1;
if(($all_pnum - ($spn - 1) * $list_page_num) > $list_page_num) { // 设置显示页数
$showpages = $list_page_num;
} else {
$showpages = $all_pnum - ($spn - 1) * $list_page_num;
}
// 样式: |< << 1 2 3 4 5 6 >> >|
if($spn > 1) {
$RETURNS .= "<a href=$prog&page=1&spn=1>|<</a> ";
$nowpage = ($spn - 2) * $list_page_num + 1;
$RETURNS .= "<a href=$prog&page=$nowpage&spn=".($spn-1)."><<</a> ";
} else {
$RETURNS .= "|< << ";
}
for($i=0; $i<$showpages; $i++) {
$nowpage = ($spn - 1) * $list_page_num + $i + 1;
if($page == $nowpage) {
$RETURNS .= "<b>[$nowpage]</b> ";
} else {
$RETURNS .= "<a href=$prog&page=$nowpage&spn=$spn>[$nowpage]</a> ";
}
}
if($spn < $split_pnum) {
$nowpage = $spn * $list_page_num + 1;
$RETURNS .= "<a href=$prog&page=$nowpage&spn=".($spn+1).">>></a> ";
$RETURNS .= "<a href=$prog&page=$all_pnum&spn=".($split_pnum).">>|</a>";
} else {
$RETURNS .= ">> >|";
}
if ($real_num>0) $num=$real_num;
$RETURNS .= " 共有 <b>$num</b> 条记录,共 <b>$all_pnum</b> 页,第 <b>$page</b> 页\n";
return $RETURNS;
}
?>