Skip to content

Instantly share code, notes, and snippets.

@codeachange
Created November 13, 2013 06:51
Show Gist options
  • Save codeachange/7444811 to your computer and use it in GitHub Desktop.
Save codeachange/7444811 to your computer and use it in GitHub Desktop.
分页函数,输出结果兼容bootstrap pagination样式
function paginate($baseurl,$total,$perpage,$curpage,$numlinks=10){
$return = '<div class="pagination"><ul>';
$pages = ceil($total/$perpage);
// 如果当前页大于总页数或小于1,则设置当前页为第一页
$curpage = ($curpage > $pages || $curpage < 1) ? 1 : $curpage;
if($pages > 0){
// 首页 上一页
if($curpage != 1){
$return .= '<li class="first"><a href="'.$baseurl.'1">首页</a></li><li class="prev"><a href="'.$baseurl.($curpage-1).'">上一页</a></li>';
}else{
$return .= '<li class="first disabled"><a href="javascript:;">首页</a></li><li class="prev disabled"><a href="javascript:;">上一页</a></li>';
}
// 数字
$min_num = max(1,$curpage - floor($numlinks/2));
$max_num = min($pages, $min_num + $numlinks - 1);
if ($max_num - $min_num + 1 < $numlinks) {
$min_num = max(1, $min_num - ($numlinks - ($max_num - $min_num + 1)));
}
for ($i=$min_num; $i <= $max_num; $i++) {
if ($i == $curpage) {
$return .= '<li class="active"><a href="javascript:;">'.$curpage.'</a></li>';
} else {
$return .= '<li><a href="'.$baseurl.$i.'">'.$i.'</a></li>';
}
}
// 下一页 尾页
if($curpage != $pages){
$return .= '<li class="next"><a href="'.$baseurl.($curpage+1).'">下一页</a></li><li class="last"><a href="'.$baseurl.($pages).'">尾页</a></li>';
}else{
$return .= '<li class="next disabled"><a href="javascript:;">下一页</a></li><li class="last disabled"><a href="javascript:;">尾页</a></li>';
}
}
return $return.'</ul></div>';
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment