php 简单简洁分页类
<?php /** *-------------------------翻页类----------------------* */ class PageClass { private $myde_count; //总记录数 var $myde_size; //每页记录数 private $myde_page; //当前页 private $myde_page_count; //总页数 private $page_url; //页面url private $page_i; //起始页 private $page_ub; //结束页 var $page_limit; function __construct($myde_count = 0, $myde_size = 1, $myde_page = 1, $page_url) //构造函数 { $this->myde_count = $this->numeric($myde_count); $this->myde_size = $this->numeric($myde_size); $this->myde_page = $this->numeric($myde_page); $this->page_limit = ($this->myde_page * $this->myde_size) - $this->myde_size; $this->page_url = $page_url; if ($this->myde_page < 1) $this->myde_page = 1; if ($this->myde_count < 0) $this->myde_page = 0; $this->myde_page_count = ceil($this->myde_count / $this->myde_size); if ($this->myde_page_count < 1) $this->myde_page_count = 1; if ($this->myde_page > $this->myde_page_count) $this->myde_page = $this->myde_page_count; $this->page_i = $this->myde_page - 2; $this->page_ub = $this->myde_page + 2; if ($this->page_i < 1) { $this->page_ub = $this->page_ub + (1 - $this->page_i); $this->page_i = 1; } if ($this->page_ub > $this->myde_page_count) { $this->page_i = $this->page_i - ($this->page_ub - $this->myde_page_count); $this->page_ub = $this->myde_page_count; if ($this->page_i < 1) $this->page_i = 1; } } private function numeric($id) //判断是否为数字 { if (strlen($id)) { if (!ereg("^[0-9]+$", $id)) { $id = 1; } else { $id = substr($id, 0, 11); } } else { $id = 1; } return $id; } private function page_replace($page) //地址替换 { return str_replace("{page}", $page, $this->page_url); } private function myde_home() //首页 { if ($this->myde_page != 1) { return " <li class=\"page_a\"><a href=\"" . $this->page_replace(1) . "\" title=\"首页\" >首页</a></li>\n"; } else { return " <li>首页</li>\n"; } } private function myde_prev() //上一页 { if ($this->myde_page != 1) { return " <li class=\"page_a\"><a href=\"" . $this->page_replace($this->myde_page - 1) . "\" title=\"上一页\" >上一页</a></li>\n"; } else { return " <li>上一页</li>\n"; } } private function myde_next() //下一页 { if ($this->myde_page != $this->myde_page_count) { return " <li class=\"page_a\"><a href=\"" . $this->page_replace($this->myde_page + 1) . ""title = "下一页\" >下一页</a></li>\n"; } else { return " <li>下一页</li>n"; } } private function myde_last() //尾页 { if ($this->myde_page != $this->myde_page_count) { return " <li class="page_a"><a href=\"" . $this->page_replace($this->myde_page_count) . "\" title=\"尾页\" >尾页</a></li>n"; } else { return " <li>尾页</li>\n"; } } function myde_write($id = 'page') //输出 { $str = "<div id=\"" . $id . "\" class=\"pages\">\n<ul>\n "; $str.= " <li>总记录:<span>" . $this->myde_count . "</span></li>\n"; $str.= " <li><span>" . $this->myde_page . "</span>/<span>" . $this->myde_page_count . "</span></li>\n"; $str.= $this->myde_home(); $str.= $this->myde_prev(); for ($page_for_i = $this->page_i; $page_for_i <= $this->page_ub; $page_for_i++) { if ($this->myde_page == $page_for_i) { $str.= " <li class=\"on\">" . $page_for_i . "</li>\n"; } else { $str.= "<li class=\"page_a\"><a href=\"" . $this->page_replace($page_for_i) . "\" title=\"第" . $page_for_i . "页\">"; $str.= $page_for_i . "</a></li>\n"; } } $str.= $this->myde_next(); $str.= $this->myde_last(); $str.= "<li class=\"pages_input\"><input type=\"text\" value=\"" . $this->myde_page . "\""; $str.= " onkeydown=\"javascript: if(event.keyCode==13){ location='"; $str.= $this->page_replace("'+this.value+'") . "';return false;}\""; $str.= " title=\"输入您想要到达的页码\"/></li>\n"; $str.= " </ul>\n<div class=\"page_clear\"></div>\n</div>"; return $str; } } /*-------------------------实例--------------------------------* $page = new PageClass(1000,5,$_GET['page'],'?page={page}');//用于动态 $page = new PageClass(1000,5,$_GET['page'],'list-{page}.html');//用于静态或者伪静态 $page -> myde_write();//显示 */
文章网址:http://www.phprm.com/code/00b7b986040980846f173bcc63bd081f.html
随意转载^^但请附上教程地址。