一個簡單好用的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);
- }
新聞熱點
疑難解答