php数组分页类

 1 <?php
 2     class ArrayPage{
 3         public $totalPage;//全部页数
 4         public $lists;//每页显示数目
 5         public $arr = array();//分页的数组
 6         public $url = '';//分页地址
 7         public $order;
 8         public $_error = '一切正常';//报错提示
 9         public function __construct(array $arr,$lists = 10,$url,$order =0){
10             if( empty($arr) ){
11                 $this->_error = '数组不存在';
12                 return false;
13             }
14             if($url == ''){
15                 $this->_error = '域名地址不可缺少';
16                 return false;
17             }
18             $this->lists = $lists;
19             $this->url = $url;
20             $this->arr = $arr;
21             $count = count($arr);
22             $this->totalPage = ceil($count / $this->lists);
23         }
24         
25         public function getData(){
26             $page = empty($_GET['page'])?1:$_GET['page'];
27             $start = ($page - 1)*$this->lists;
28             //return $this->lists;
29             if($this->order == 1){
30                 $this->arr = array_reverse($this->arr);
31             }
32             $res = array_slice($this->arr,$start,$this->lists);
33             return $res;
34         }
35         
36         public function getShow(){
37             $page = empty($_GET['page'])?1:$_GET['page'];
38             if($page > 1){
39                 $prevPage = $page-1;
40             }else{
41                 $prevPage = 1;
42             }
43             
44             if($page < $this->totalPage){
45                 $nextPage = $page+1;
46             }else{
47                 $page = $this->totalPage;
48             }
49             $str = '<div style="border:1px; 300px; height:30px; color:#9999CC">';
50             $str .= "<span>共  {$this->totalPage}  页 / 第 {$page} 页</span>";
51             $str .= "<span><a href='{$this->url}?page=1'>   首页  </a></span>";
52             if($page == 1){
53                 $str .= "<span> 上一页  </span>";
54             }else{
55                 $str .= "<span><a href='{$this->url}?page={$prevPage}'> 上一页  </a></span>";
56             }
57             if($page == $this->totalPage){
58                 $str .= "<span>下一页  </span>";
59             }else{
60                 $str .= "<span><a href='{$this->url}?page={$nextPage}'>下一页  </a></span>";
61             }
62             $str .= "<span><a href='{$this->url}?page={$this->totalPage}'>尾页  </a></span>";
63             $str .= '</div>';
64             return $str;
65         }
66         
67         public function getError(){
68             return $this->_error;
69         }
70     }
71     for($i =0;$i<100;$i++){
72         $arr[$i] = $i*10;
73     }
74     $page = new ArrayPage($arr,10,'http://localhost/testSvn/arrayPage.php',0);
75     $res = $page->getData();
76     echo $page->getShow();
View Code
原文地址:https://www.cnblogs.com/ikasa007/p/3722864.html