1 $url = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; //當前網址 2 if(isset($_GET['page'])){ 3 $url = preg_replace('/(\?page=\w)/','', $url, 1); 4 } 5 6 $page = isset($_GET['page'])?$_GET['page']:'';//當前頁數 7 $page_res = $this->page_array(19,$page,$data); 8 $page_data = $page_res[0]; 9 $countpage = $page_res[1];//總的頁數 10 $page_url = $this->show_array($countpage,$url,$page);//分頁url,放在前端即可 11 12 /** 13 * 數組分頁函數 核心函數 array_slice 14 * 用此函數之前要先將數據庫里面的所有數據按一定的順序查詢出來存入數組中 15 * $count 每頁多少條數據 16 * $page 當前第幾頁 17 * $array 查詢出來的所有數組 18 * order 0 - 不變 1- 反序 19 */ 20 21 function page_array($count,$page,$array){ 22 global $countpage; #定全局變量 23 $page=(empty($page))?'1':$page; #判斷當前頁面是否為空 如果為空就表示為第一頁面 24 $start=($page-1)*$count; #計算每次分頁的開始位置 25 26 $totals=count($array); 27 $countpage=ceil($totals/$count); #計算總頁面數 28 $pagedata=array(); 29 $pagedata=array_slice($array,$start,$count); 30 return [$pagedata,$countpage]; #返回查詢數據 31 } 32 /** 33 * 分頁及顯示函數 34 * $countpage 全局變量,照寫 35 * $url 當前url 36 */ 37 function show_array($countpage,$url,$page){ 38 $page=empty($_GET['page'])?1:$_GET['page']; 39 if($page > 1){ 40 $uppage=$page-1; 41 42 }else{ 43 $uppage=1; 44 } 45 46 if($page < $countpage){ 47 $nextpage=$page+1; 48 49 }else{ 50 $nextpage=$countpage; 51 } 52 53 $str='<div style="border:1px; width:330px; height:30px; color:red;padding-left:10px">'; 54 $str.="<span>共 {$countpage} 頁 / 第 {$page} 頁</span>"; 55 $str.="<span><a href='$url?page=1'> 首頁 </a></span>"; 56 $str.="<span><a href='$url?page={$uppage}'> 上一頁 </a></span>"; 57 $str.="<span><a href='$url?page={$nextpage}'>下一頁 </a></span>"; 58 $str.="<span><a href='$url?page={$countpage}'>尾頁 </a></span>"; 59 $str.='</div>'; 60 return $str; 61 }