学习中所得,不过这个只是针对文件的操作,如果是数据库,就需要自己做个数据库的类
file = file_get_contents($file); $this->pagelen = $len; $this->current = isset($_get['page'])?$_get['page']:1; $this->totalpage = $this->gettotalpage(); $this->url = $this->geturl(); } //获取到这个文件总的长度 private function gettotalpage(){ return ceil(strlen($this->file)/$this->pagelen); } //获取当前传递的参数,保留参数,page参数动态变化 private function geturl(){ $url =parse_url($_server['request_uri']); parse_str($url['query'],$queryarr); unset($queryarr['page']); $querystr = http_build_query($queryarr); return $url['path'].'?'.$querystr.'&page='; } //首页 private function first(){ if($this->current>1) return url.1'>首页; } //上一页 private function pre(){ if( $this->current > 1 ) return url.($this->current-1).'>上一页; } //下一页 private function next(){ if( $this->current totalpage) return url.($this->current+1).'>下一页; } //最后一页 private function end(){ if( $this->current totalpage ) return url.$this->totalpage.'>末页; } public function pagelist(){ $pageliststr = ''; for ($i=1;$itotalpage;$i++){ if($i==$this->current){ $pageliststr.=.$i. ; }else{ $pageliststr.=url.$i.'>.$i. ; } } return $pageliststr; } public function pagestyle($style=1){ switch ($style){ case 1: return 共有.$this->totalpage.页.$this->first().$this->pre().$this->pagelist().$this->next().$this->end(); break; case 2; return $this->pagelist(); break; } } public function getcontents(){ $prepagelen = strlen($this->substrs($this->current-1)); $currentpagelen = strlen($this->substrs($this->current)); return substr($this->file, $prepagelen,$currentpagelen-$prepagelen); } public function substrs($page){ $string = ''; $len= $page*$this->pagelen; for( $i=0; $ifile,$i,1))>0xa0 ){ $string .= substr($this->file,$i,3); $i = $i+2; }else{ $string .= substr($this->file, $i,1); } } return $string; }}