一个简单好用的Php自用分页函数,有需要使用分页函数又不想手写的朋友可进入参考,代码如下:
- /*
- * 前台分页
- *
- * $page_array = array(
- * 'totle' =>10, //总数
- * 'dispage' =>10, //每页显示条数
- * 'url' =>'/article/list/',//url地址
- * 'now_page', =>1, //当前所在页数
- * );
- *
- * @return pagenav
- */
- function front_page( $page_array ){
- //分页判断
- $lastpage = ceil($page_array['total'] / $page_array['dispage']); //最后一页
- $page_array['now_page'] = min( $lastpage , $page_array['now_page'] );//比较当前页数和最后一页
- $prepage = $page_array['now_page'] - 1;//上一页
- $nextpage = ($page_array['now_page'] == $lastpage ? 0 : $page_array['now_page'] + 1 );//下一页
- $firstcount = ($page_array['now_page']-1) * $page_array['dispage'];
- if( $lastpage <= 1) return false;//最后一页小于1,则直接返回
- //首页
- if($prepage){
- $page_array[]="<a href='{$page_array['url']}"."1/'>首页</a>";
- }else{
- $page_array[]="<span class=\"nolink\">首页</span>";
- }
- //上一页
- if($prepage) {
- $page_array[]="<a href='{$page_array['url']}$prepage/'> 上一页 </a> ";
- }else{
- $page_array[]='';
- }
- //显示的数字分页条数
- $pagenum=5;
- $offset=2;//偏移两
- $from=$page_array['now_page'] - $offset;//起始
- $to=$page_array['now_page'] + $pagenum-$offset-1;//终止
- if($pagenum>$lastpage){
- $from=1;
- $to=$lastpage;
- }else{
- if($from<1){
- $to=$page_array['now_page'] + 1 - $from;
- $from=1;
- if(($to-$from)<$pagenum && ($to-$from)<$lastpage){
- $to=$pagenum;
- }
- }elseif($to>$lastpage){
- $from=$page_array['now_page'] - $lastpage+$to;
- $to=$lastpage;
- if(($to-$from)<$pagenum && ($to-$from)<$lastpage){
- $from=$lastpage-$pagenum+1;
- }
- }
- }
- for($i=$from;$i<=$to;$i++){
- if($i == $page_array['now_page']){
- $pagenav.="<a href=\"#\" title=\"\">$i</a> ";
- }else{
- $pagenav.="<a href=\"{$page_array['url']}$i/\" title=\"\">$i</a> ";
- }
- }
- //数字分页
- $page_array[]= $pagenav;
- //下一页
- if($nextpage){
- $page_array[]="<a href='{$page_array['url']}"."$nextpage/'> 下一页 </a> ";
- }else {
- $page_array[]='';
- }
- //尾页
- if($nextpage){
- $page_array[]="<a href='{$page_array['url']}"."$lastpage/'>尾页</a>";
- }else{
- $page_array[]='<span class="nolink">尾页</span>';
- }
- //记录数
- $page_array[]="<span>每页 ".$page_array['dispage']." 条</span> <span>共 ".$page_array['total']." 条纪录</span>";
- //分页数
- $page_array[]="共 ".$lastpage." 页";
- //跳页
- $page_array[] = '<span>跳转到:</span><input size="4" id="pagenu" type="text" onkeydown="javascript:if(event.keyCode==13){var page=(this.value<0)?1:this.value;location=\''.$page_array['url'].'\'+page;}" /> //开源软件:Vevb.com
- <a href="javascript:void(0)" onclick="javascript:var spage=(window.document.getElementById(\'pagenu\').value==\'\')?1:window.document.getElementById(\'pagenu\').value;location=\''.$page_array['url'].'\'+spage;">Go</a>';
- //第一页总数
- $firstcount=$firstcount < 1 ? 0 : $firstcount;
- return array('pagenav'=>$page_array,'limit'=>$firstcount,'offset'=> $page_array['dispage'],'allpage'=>$lastpage);
- }
新闻热点
疑难解答