您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

PHP分页类分享

2024/6/18 7:23:24发布18次查看
分享一个常用的php分页类。有三种表现形式,具体效果图如下:
(1)
(2)
(3)
该php分页类的具体代码以及使用方法如下:
/***php分页类 **show(2) 1 ... 62 63 64 65 66 67 68 ... 150*分页样式*#page{font:12px/16px arial}*#page span{float:left;margin:0px 3px;}*#page a{float:left;margin:0 3px;border:1px solid #ddd;padding:3px*7px;text-decoration:none;color:#666}*#page a.now_page,#page a:hover{color:#fff;background:#05c} */class pager{ public $first_row;//起始行数 public $list_rows;//列表每页显示行数 protected $total_pages;//总页数 protected $total_rows;//总行数 protected $now_page;//当前页数 protected $method=defalut;//处理情况 ajax分页 html分页(静态化时) 普通get方式 protected $parameter=; protected $page_name;//分页参数的名称 protected $ajax_func_name; public $plus=3;//分页偏移量 protected $url; /** *构造函数 * *@param unknown_type $data */ public function __construct($data=array()){ $this->total_rows=$data[total_rows]; $this->parameter=!empty($data[parameter])?$data[parameter]:; $this->list_rows=!empty($data[list_rows])&&$data[list_rows]total_pages=ceil($this->total_rows / $this->list_rows); $this->page_name=!empty($data[page_name])?$data[page_name]:page; $this->ajax_func_name=!empty($data[ajax_func_name])?$data[ajax_func_name]:; $this->method=!empty($data[method])?$data[method]:; /* 当前页面 */ if(!empty($data[now_page])){ $this->now_page=intval($data[now_page]); }else{ $this->now_page=!empty($_get[$this->page_name])?intval($_get[$this->page_name]):1; } $this->now_page=$this->now_pagenow_page; if(!empty($this->total_pages)&&$this->now_page>$this->total_pages){ $this->now_page=$this->total_pages; } $this->first_row=$this->list_rows*($this->now_page-1); } /** *得到当前连接 * *@param * $page *@param * $text *@return string */ protected function _get_link($page,$text){ switch ($this->method){ case ajax : $parameter=; if($this->parameter){ $parameter=,.$this->parameter; } return .$text..; break; case html : $url=str_replace(?,$page,$this->parameter); return .$text.; break; default : return _get_url($page).>.$text.; break; } } /** *设置当前页面链接 */ protected function _set_url(){ $url=$_server[request_uri].(strpos($_server[request_uri],?)?:?).$this->parameter; $parse=parse_url($url); if(isset($parse[query])){ parse_str($parse[query],$params); unset($params[$this->page_name]); $url=$parse[path].?.http_build_query($params); } if(!empty($params)){ $url.=&; } $this->url=$url; } /** *得到$page的url * *@param $page 页面 *@return string */ protected function _get_url($page){ if($this->url === null){ $this->_set_url(); } // $lable=strpos(&,$this->url) === false?:&; return $this->url.$this->page_name.=.$page; } /** *得到第一页 * *@return string */ public function first_page($name=第一页){ if($this->now_page>5){ return $this->_get_link(1,$name); } return ; } /** *最后一页 * *@param * $name *@return string */ public function last_page($name=最后一页){ if($this->now_pagetotal_pages-5){ return $this->_get_link($this->total_pages,$name); } return ; } /** *上一页 * *@return string */ public function up_page($name=上一页){ if($this->now_page!=1){ return $this->_get_link($this->now_page-1,$name); } return ; } /** *下一页 * *@return string */ public function down_page($name=下一页){ if($this->now_pagetotal_pages){ return $this->_get_link($this->now_page+1,$name); } return ; } /** *分页样式输出 * *@param * $param *@return string */ public function show($param=1){ if($this->total_rows$classname(); } return ; } protected function show_2(){ if($this->total_pages!=1){ $return=; $return.=$this->up_page(now_page){ $return.=$i; }else{ if($this->now_page-$i>=4&&$i!=1){ $return.=...; $i=$this->now_page-3; }else{ if($i>=$this->now_page+5&&$i!=$this->total_pages){ $return.=...; $i=$this->total_pages; } $return.=$this->_get_link($i,$i); } } } $return.=$this->down_page(>); return $return; } } protected function show_1(){ $plus=$this->plus; if($plus+$this->now_page>$this->total_pages){ $begin=$this->total_pages-$plus*2; }else{ $begin=$this->now_page-$plus; } $begin=($begin>=1)?$begin:1; $return=; $return.=$this->first_page(); $return.=$this->up_page(); for($i=$begin;$i$this->total_pages){ break; } if($i==$this->now_page){ $return.=$i; }else{ $return.=$this->_get_link($i,$i); } } $return.=$this->down_page(); $return.=$this->last_page(); return $return; } protected function show_3(){ $plus=$this->plus; if($plus+$this->now_page>$this->total_pages){ $begin=$this->total_pages-$plus*2; }else{ $begin=$this->now_page-$plus; } $begin=($begin>=1)?$begin:1; $return=总计 .$this->total_rows. 个记录分为 .$this->total_pages. 页,当前第 .$this->now_page. 页 ; $return.=,每页 ; $return.=list_rows. id=pagesize size=3> ; $return.=$this->first_page(); $return.=$this->up_page(); $return.=$this->down_page(); $return.=$this->last_page(); $return.=ajax_func_name.(this.value) id=gotopage>; for($i=$begin;$i$this->total_pages){ break; } if($i==$this->now_page){ $return.=.$i.; }else{ $return.=.$i.; } } $return.=; return $return; }}
类使用示例:
###处理html静态化页面分页的情况#### method 处理环境 设置为 html# parameter 为静态页面参数 www.alixixi.com/20-0-0-0-40-?.html 注意问号# ?问号的位置会自动替换为去向页码# now_page 当前页面(静态页面获取不到当前页面所以只有你传入)$params=array( total_rows=>100,#(必须) method =>html,#(必须) parameter =>www.alixixi.com/20-0-0-0-40-?.html, #(必须) now_page =>$_get[p], #(必须) list_rows =>10,#(可选) 默认为15);$page=new pager($params); echo $page->show(1); #2###处理ajax分页的情况#### method 处理环境 设置为 ajax# ajax_func_name ajax分页跳转页面的javascript方法# parameter ajax_func_name后面的附带参数 默认为空# now_page 不到当前页面所以只有你传入$params=array( total_rows=>100, method =>ajax, ajax_func_name =>gotopage, now_page =>1, #parameter =>jiong,username,);$page=new pager($params);echo $page->show(1);#7#添加了parameter6
您可能感兴趣的文章在php中分别使用curl的post提交数据的方法和get获取网页数据的方法总结php分析文件头信息判断上传文件的类型php判断变量类型常用方法php 利用 curl functions 实现多线程抓取网页和下载文件php控制请求页面浏览器缓存php判断浏览器类型php curl批量多线程打开网址的类php通过socket获取网页内容的简单示例
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product