首页 > 代码库 > php分页类
php分页类
1 <?php 2 namespace Components; 3 4 class Page { 5 private $total; //数据表中总记录数 6 private $listRows; //每页显示行数 7 private $limit; 8 private $uri; 9 private $pageNum; //页数 10 private $config=array(‘header‘=>"个记录", "prev"=>"上一页", "next"=>"下一页", "first"=>"首 页", "last"=>"尾 页"); 11 private $listNum=8; 12 /* 13 * $total 14 * $listRows 15 */ 16 public function __construct($total, $listRows=10, $pa=""){ 17 $this->total=$total; 18 $this->listRows=$listRows; 19 $this->uri=$this->getUri($pa); 20 $this->page=!empty($_GET["page"]) ? $_GET["page"] : 1; 21 $this->pageNum=ceil($this->total/$this->listRows); 22 $this->limit=$this->setLimit(); 23 } 24 25 private function setLimit(){ 26 return "Limit ".($this->page-1)*$this->listRows.", {$this->listRows}"; 27 } 28 29 private function getUri($pa){ 30 $url=$_SERVER["REQUEST_URI"].(strpos($_SERVER["REQUEST_URI"], ‘?‘)?‘‘:"?").$pa; 31 $parse=parse_url($url); 32 33 34 35 if(isset($parse["query"])){ 36 parse_str($parse[‘query‘],$params); 37 unset($params["page"]); 38 $url=$parse[‘path‘].‘?‘.http_build_query($params); 39 40 } 41 42 return $url; 43 } 44 45 function __get($args){ 46 if($args=="limit") 47 return $this->limit; 48 else 49 return null; 50 } 51 52 private function start(){ 53 if($this->total==0) 54 return 0; 55 else 56 return ($this->page-1)*$this->listRows+1; 57 } 58 59 private function end(){ 60 return min($this->page*$this->listRows,$this->total); 61 } 62 63 private function first(){ 64 $html = ""; 65 if($this->page==1) 66 $html.=‘‘; 67 else 68 $html.=" <a href=http://www.mamicode.com/‘{$this->uri}&page=1‘>{$this->config["first"]}</a> "; 69 70 return $html; 71 } 72 73 private function prev(){ 74 $html = ""; 75 if($this->page==1) 76 $html.=‘‘; 77 else 78 $html.=" <a href=http://www.mamicode.com/‘{$this->uri}&page=".($this->page-1)."‘>{$this->config["prev"]}</a> "; 79 80 return $html; 81 } 82 83 private function pageList(){ 84 $linkPage=""; 85 86 $inum=floor($this->listNum/2); 87 88 for($i=$inum; $i>=1; $i--){ 89 $page=$this->page-$i; 90 91 if($page<1) 92 continue; 93 94 $linkPage.=" <a href=http://www.mamicode.com/‘{$this->uri}&page={$page}‘>{$page}</a> "; 95 96 } 97 98 $linkPage.=" {$this->page} "; 99 100 101 for($i=1; $i<=$inum; $i++){102 $page=$this->page+$i;103 if($page<=$this->pageNum)104 $linkPage.=" <a href=http://www.mamicode.com/‘{$this->uri}&page={$page}‘>{$page}</a> ";105 else106 break;107 }108 109 return $linkPage;110 }111 112 private function next(){113 $html = "";114 if($this->page==$this->pageNum)115 $html.=‘‘;116 else117 $html.=" <a href=http://www.mamicode.com/‘{$this->uri}&page=".($this->page+1)."‘>{$this->config["next"]}</a> ";118 119 return $html;120 }121 122 private function last(){123 $html = "";124 if($this->page==$this->pageNum)125 $html.=‘‘;126 else127 $html.=" <a href=http://www.mamicode.com/‘{$this->uri}&page=".($this->pageNum)."‘>{$this->config["last"]}</a> ";128 129 return $html;130 }131 132 private function goPage(){133 return ‘ <input type="text" onkeydown="javascript:if(event.keyCode==13){var page=(this.value>‘.$this->pageNum.‘)?‘.$this->pageNum.‘:this.value;location=\‘‘.$this->uri.‘&page=\‘+page+\‘\‘}" value="http://www.mamicode.com/‘.$this->page.‘" style="width:25px"><input type="button" value="http://www.mamicode.com/GO" onclick="javascript:var page=(this.previousSibling.value>‘.$this->pageNum.‘)?‘.$this->pageNum.‘:this.previousSibling.value;location=\‘‘.$this->uri.‘&page=\‘+page+\‘\‘"> ‘;134 }135 function fpage($display=array(0,1,2,3,4,5,6,7,8)){136 $html[0]=" 共有<b>{$this->total}</b>{$this->config["header"]} ";137 $html[1]=" 每页显示<b>".($this->end()-$this->start()+1)."</b>条,本页<b>{$this->start()}-{$this->end()}</b>条 ";138 $html[2]=" <b>{$this->page}/{$this->pageNum}</b>页 ";139 140 $html[3]=$this->first();141 $html[4]=$this->prev();142 $html[5]=$this->pageList();143 $html[6]=$this->next();144 $html[7]=$this->last();145 $html[8]=$this->goPage();146 $fpage=‘‘;147 foreach($display as $index){148 $fpage.=$html[$index];149 }150 151 return $fpage;152 153 }154 155 156 }
php分页类
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。