PHP简单漂亮的分页类

原创
2016-06-07 11:38:17 599浏览
本文介绍一款原生的PHP分页类,分页样式有点类似bootstrap。

/* * *********************************************
* @类名: page
* @参数: $myde_total - 总记录数
* $myde_size - 一页显示的记录数
* $myde_page - 当前页
* $myde_url - 获取当前的url
* @功能: 分页实现
* @作者: 宋海阁
*/

class page {

private $myde_total; //总记录数
private $myde_size; //一页显示的记录数
private $myde_page; //当前页
private $myde_page_count; //总页数
private $myde_i; //起头页数
private $myde_en; //结尾页数
private $myde_url; //获取当前的url
/*
* $show_pages
* 页面显示的格式,显示链接的页数为2*$show_pages+1。
* 如$show_pages=2那么页面上显示就是[首页] [上页] 1 2 3 4 5 [下页] [尾页]
*/
private $show_pages;

public function __construct($myde_total = 1, $myde_size = 1, $myde_page = 1, $myde_url, $show_pages = 2) {
$this->myde_total = $this->numeric($myde_total);
$this->myde_size = $this->numeric($myde_size);
$this->myde_page = $this->numeric($myde_page);
$this->myde_page_count = ceil($this->myde_total / $this->myde_size);
$this->myde_url = $myde_url;
if ($this->myde_total < 0)
$this->myde_total = 0;
if ($this->myde_page < 1)
$this->myde_page = 1;
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->limit = ($this->myde_page - 1) * $this->myde_size;
$this->myde_i = $this->myde_page - $show_pages;
$this->myde_en = $this->myde_page + $show_pages;
if ($this->myde_i < 1) {
$this->myde_en = $this->myde_en + (1 - $this->myde_i);
$this->myde_i = 1;
}
if ($this->myde_en > $this->myde_page_count) {
$this->myde_i = $this->myde_i - ($this->myde_en - $this->myde_page_count);
$this->myde_en = $this->myde_page_count;
}
if ($this->myde_i < 1)
$this->myde_i = 1;
}

//检测是否为数字
private function numeric($num) {
if (strlen($num)) {
if (!preg_match("/^[0-9]+$/", $num)) {
$num = 1;
} else {
$num = substr($num, 0, 11);
}
} else {
$num = 1;
}
return $num;
}

//地址替换
private function page_replace($page) {
return str_replace("{page}", $page, $this->myde_url);
}

//首页
private function myde_home() {
if ($this->myde_page != 1) {
return "page_replace(1) . "' title='首页'>首页";
} else {
return "

首页

";
}
}

//上一页
private function myde_prev() {
if ($this->myde_page != 1) {
return "page_replace($this->myde_page - 1) . "' title='上一页'>上一页";
} else {
return "

上一页

";
}
}

//下一页
private function myde_next() {
if ($this->myde_page != $this->myde_page_count) {
return "page_replace($this->myde_page + 1) . "' title='下一页'>下一页";
} else {
return"

下一页

";
}
}

//尾页
private function myde_last() {
if ($this->myde_page != $this->myde_page_count) {
return "page_replace($this->myde_page_count) . "' title='尾页'>尾页";
} else {
return "

尾页

";
}
}

//输出
public function myde_write($id = 'page') {
$str = "
";
$str.=$this->myde_home();
$str.=$this->myde_prev();
if ($this->myde_i > 1) {
$str.="

...

";
}
for ($i = $this->myde_i; $i <= $this->myde_en; $i++) {
if ($i == $this->myde_page) {
$str.="page_replace($i) . "' title='第" . $i . "页' class='cur'>$i";
} else {
$str.="page_replace($i) . "' title='第" . $i . "页'>$i";
}
}
if ($this->myde_en < $this->myde_page_count) {
$str.="

...

";
}
$str.=$this->myde_next();
$str.=$this->myde_last();
$str.="

" . $this->myde_page_count .
"
" . $this->myde_total . "条数据

";
$str.="
";
return $str;
}

}

?>
分页演示地址:http://www.sucaihuo.com/php/223.html

附件 PHP简单漂亮的分页类.zip ( 3.79 KB 下载:453 次 )

AD:真正免费,域名+虚机+企业邮箱=0元

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。