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; 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 }