21,887
社区成员
发帖
与我相关
我的任务
分享
/**
* 翻页函数
*
* @param int $num 总纪录数
* @param int $perpage 每页大小
* @param int $curpage 当前页面
* @param string $mpurl url
* @return string 类似于: <div class="page">***</div>
*/
function page($num, $perpage, $curpage, $mpurl) {
$multipage = '';
$mpurl .= strpos($mpurl, '?') ? '&' : '?';
if($num > $perpage) {
$page = 10;
$offset = 2;
$pages = @ceil($num / $perpage);
if($page > $pages) {
$from = 1;
$to = $pages;
} else {
$from = $curpage - $offset;
$to = $from + $page - 1;
if($from < 1) {
$to = $curpage + 1 - $from;
$from = 1;
if($to - $from < $page) {
$to = $page;
}
} elseif($to > $pages) {
$from = $pages - $page + 1;
$to = $pages;
}
}
$multipage = ($curpage - $offset > 1 && $pages > $page ? '<a href="'.$mpurl.'page=1" class="first"'.$ajaxtarget.'>1 ...</a>' : '').
($curpage > 1 && !$simple ? '<a href="'.$mpurl.'page='.($curpage - 1).'" class="prev"'.$ajaxtarget.'>‹‹</a>' : '');
for($i = $from; $i <= $to; $i++) {
$multipage .= $i == $curpage ? '<strong>'.$i.'</strong>' :
'<a href="'.$mpurl.'page='.$i.($ajaxtarget && $i == $pages && $autogoto ? '#' : '').'"'.$ajaxtarget.'>'.$i.'</a>';
}
$multipage .= ($curpage < $pages && !$simple ? '<a href="'.$mpurl.'page='.($curpage + 1).'" class="next"'.$ajaxtarget.'>››</a>' : '').
($to < $pages ? '<a href="'.$mpurl.'page='.$pages.'" class="last"'.$ajaxtarget.'>... '.$realpages.'</a>' : '').
(!$simple && $pages > $page && !$ajaxtarget ? '<kbd><input type="text" name="custompage" size="3" onkeydown="if(event.keyCode==13) {window.location=\''.$mpurl.'page=\'+this.value; return false;}" /></kbd>' : '');
$multipage = $multipage ? '<div class="pages">'.(!$simple ? '<em> '.$num.' </em>' : '').$multipage.'</div>' : '';
}
return $multipage;
}
echo $pagenav;
function page($page_num,$cur_page,$per_group,$base_url){ //分页函数参数列表(有多少页,当前页,每页多少个 ,链接地址)
$base_url .= strpos($base_url, '?') ? '&' : '?';
$page_val = "";
if ($page_num < 1) {
return $page_val;
} elseif($page_num == 1) {
return $page_val = 1;
}
$group_ok = !(($page_num-1)%($per_group-1));
//计算一共有多少组
if($group_ok) {
$group_num = ($page_num-1)/($per_group-1);
} else {
$group_num = ceil(($page_num-1)/($per_group-1));
}
//判断当前页是否为一组的最后一个
$is_last_page = !(($cur_page-1)%($per_group-1));
//计算当前在的组数
if($is_last_page) {
$cur_group = ($cur_page-1)/($per_group-1) + 1;
} else {
$cur_group = ceil(($cur_page-1)/($per_group-1));
}
//计算显示的起始页
$from = ($cur_group - 1) * ($per_group-1) + 1;
$from = $cur_group <= 1 ? 1 :$from;
$to = $from + $per_group;
$to = $to > $page_num ? $page_num + 1 : $to;
for($a = $from; $a < $to; $a++){
if( $a != $cur_page) {
$page_val .= '<a href ='.$base_url.'page='.$a.'>'.$a.'</a>';
} else {
$page_val .= $a;
}
}
//上一页下一页首页尾页
$next=$cur_page+1;
$prev=$cur_page-1;
if ($cur_page!=$page_num) {
$page_val.='<a href ='.$base_url.'page='.$next.'>'.'下一页'.'</a>';
$page_val .= '<a href ='.$base_url.'page='.$page_num.'>'.'>>'.'</a>'; //尾页
}
if ($cur_page!=1) {
$page_val = '<a href ='.$base_url.'page='.$prev.'>'.'上一页'.'</a>'.$page_val;
$page_val = '<a href ='.$base_url.'page=1>'.'<<'.'</a>'.$page_val; //首页
}
return $page_val;
}