自己写了一个分页函数
/** * 分页显示函数 * @param int $count 总数据条数 * @param int $rows 每页显示数据 * @param int $pages 当前页 * @param string $basicUrl 起始URL(即参数前URL) * @param string $parm 参数(不带?号) * @param int $showMaxPageLink 最大显示页码数 */ function show_pages($count ,$rows , $page ,$basicUrl ,$parm ,$showMaxPageLink=11){ if($count<=$rows || $count<=0){ return ; } //$showMaxPageLink = 11; //最大显示页码数 $pages = ceil($count/$rows); //页数 $parm = ('' != $parm) ? '?'.$parm.'&page=' : '?page='; $url = $basicUrl.$parm; //起始显示页 $beginPage = $page - intval($showMaxPageLink/2); $beginPage = $beginPage>0 ? $beginPage : 1; //结束显示页 $endpage = $beginPage + $showMaxPageLink -1; $endpage = $endpage<=$pages ? $endpage : $pages; //如果页尾不够跨度,起始页需要继续前行 if(($endpage-$beginPage)<$showMaxPageLink && $beginPage>1){ $beginPage = $endpage - $showMaxPageLink + 1; //加1表示减去自己的位置 $beginPage = $beginPage>0 ? $beginPage : 1; } $html = '<a href="'.$basicUrl.$parm.'1">首页</a>'; //显示前一页 if($page > 1) $html .= '<a href="'.$url.($page-1).'">上一页</a>'; //显示...链接(表示在起始页前还有页面) if(($beginPage-1)>=1) $html .= '<a href="'.$url.($beginPage-1).'">...</a>'; //显示页面列表 for ($i = $beginPage; $i<=$endpage; $i++){ if($i == $page) $html .= '<span>'.$i.'</span>'; else $html .= '<a href="'.$url.$i.'">'.$i.'</a>'; } //显示...链接(表示在结束页后还有页面) if($endpage+1<=$pages) $html .= '<a href="'.$url.($endpage+1).'">...</a>'; //显示后一页 if($page <= ($pages-1)) $html .= '<a href="'.$url.($page+1).'">下一页</a>'; $html .= '<a href="'.$url.$pages.'">末页</a>'; return $html; }
显示效果如:
首页 上一页 ... 2 3 4 5 6 7 8 9 10 11 12 ... 下一页 末页