PHP简单漂亮的分页类
本文介绍一款原生的PHP分页类,分页样式有点类似bootstrap。
- <?php
- /* * *********************************************
- * @类名: 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 "<a href='" . $this->page_replace(1) . "' title='首页'>首页</a>";
- } else {
- return "<p>首页</p>";
- }
- }
- //上一页
- private function myde_prev() {
- if ($this->myde_page != 1) {
- return "<a href='" . $this->page_replace($this->myde_page - 1) . "' title='上一页'>上一页</a>";
- } else {
- return "<p>上一页</p>";
- }
- }
- //下一页
- private function myde_next() {
- if ($this->myde_page != $this->myde_page_count) {
- return "<a href='" . $this->page_replace($this->myde_page + 1) . "' title='下一页'>下一页</a>";
- } else {
- return"<p>下一页</p>";
- }
- }
- //尾页
- private function myde_last() {
- if ($this->myde_page != $this->myde_page_count) {
- return "<a href='" . $this->page_replace($this->myde_page_count) . "' title='尾页'>尾页</a>";
- } else {
- return "<p>尾页</p>";
- }
- }
- //输出
- public function myde_write($id = 'page') {
- $str = "<div id=" . $id . ">";
- $str.=$this->myde_home();
- $str.=$this->myde_prev();
- if ($this->myde_i > 1) {
- $str.="<p class='pageEllipsis'>...</p>";
- }
- for ($i = $this->myde_i; $i <= $this->myde_en; $i++) {
- if ($i == $this->myde_page) {
- $str.="<a href='" . $this->page_replace($i) . "' title='第" . $i . "页' class='cur'>$i</a>";
- } else {
- $str.="<a href='" . $this->page_replace($i) . "' title='第" . $i . "页'>$i</a>";
- }
- }
- if ($this->myde_en < $this->myde_page_count) {
- $str.="<p class='pageEllipsis'>...</p>";
- }
- $str.=$this->myde_next();
- $str.=$this->myde_last();
- $str.="<p class='pageRemark'>共<b>" . $this->myde_page_count .
- "</b>页<b>" . $this->myde_total . "</b>条数据</p>";
- $str.="</div>";
- return $str;
- }
- }
- ?>
分页演示地址:http://www.sucaihuo.com/php/223.html
PHP简单漂亮的分页类的更多相关文章
- THinkPHP简单漂亮的分页类 DownLoad
PHP include_once("config.php"); require_once('page.class.php'); //分页类 $showrow = 10; //一页显 ...
- 一个简单的php分页类代码(转载)
入门级php分页类 原文地址:http://www.xfcodes.com/php/fenye/3608.htm 时间:2015-12-16 20:52:00来源:网络 php分页类. 复制代码代码如 ...
- 简单实用的分页类-python
django自带的分页虽然挺好,但是就想自己弄个通用的 自己写了个分页的类,用的是python, 其他语言改下语法就能用了. #定义好类.class pagemanage: def __init_ ...
- php漂亮的分页类
<?php /* * PHP分页类 * @package Page * @Created 2013-03-27 * @Modify 2013-03-27 * ...
- 一个简单的CI分页类
[php] view plaincopy <span style="font-size:16px;">/** * * 关于 页码有效性的判断需要加在 控制器中判断,即当 ...
- 简单实用的原生PHP分页类
一款简单实用的原生PHP分页类,分页按钮样式简洁美观,页码多的时候显示“...”,也是挺多网站用的效果 核心分页代码 include_once("config.php"); req ...
- php 简单分页类
/** file: page.class.php 完美分页类 Page */ class Page { private $total; //数据表中总记录数 privat ...
- 好用的ASP.NET 分页类 简单好用 支持 AJAX 自定义文字
在做网站没用 JS UI控件时 很实用 用法: var ps=new PageString(); /*可选参数*/ ps.SetIsEnglish = true;// 是否是英文 (默认:false) ...
- 用PHP写的一个简单的分页类 1.0版
<?php /* 分页类 用于实现对多条数据分页显示 version:1.0 author:Knight E-Mail:S.Knight.Work@gmail.com Date:2013-10- ...
随机推荐
- hdu 1757 矩阵
用矩阵表示状态,矩阵乘法的就是状态之间的变换 作一个vector: 要求的就是一个矩阵A,使得上面那个vector乘以A之后变成 解得A= [不知道用逆矩阵能不能直接求出A Ref:http://bl ...
- Bzoj2118 墨墨的等式
Time Limit: 10 Sec Memory Limit: 259 MBSubmit: 1488 Solved: 578 Description 墨墨突然对等式很感兴趣,他正在研究a1x1+ ...
- [NOIP2012] 提高组 洛谷P1082 同余方程
题目描述 求关于 x 的同余方程 ax ≡ 1 (mod b)的最小正整数解. 输入输出格式 输入格式: 输入只有一行,包含两个正整数 a, b,用一个空格隔开. 输出格式: 输出只有一行,包含一个正 ...
- WPF控件ComboBox 每个Item的ToolTip引发的异常
介绍 首先介绍下要实现的任务.做一个下拉框,当选择每个项的时候将鼠标发在上面显示该项的ToolTip的内容(Image). 实现 Model: public class SkinInfo : Noti ...
- UVA10054The Necklace (打印欧拉路)
题目链接 题意:一种由彩色珠子组成的项链.每个珠子的两半由不同的颜色组成.相邻的两个珠子在接触的地方颜色相同.现在有一些零碎的珠子,需要确定他们是否可以复原成完整的项链 分析:之前也没往欧拉路上面想, ...
- Linux Basic --- The First Character in The File Properity
-rw-r--r-- [d]: content [-]: file [l]: link file [b]: interface device for storage in a device file ...
- java内存配置
使用Java程序从数据库中查询大量的数据时出现异常:java.lang.OutOfMemoryError: Javaheap space 在JVM中如果98%的时间是用于GC且可用的 Heap siz ...
- join的理解
thread.Join把指定的线程加入到当前线程,可以将两个交替执行的线程合并为顺序执行的线程.比如在线程B中调用了线程A的Join()方法,直到线程A执行完毕后,才会继续执行线程B. t.join( ...
- C#创建用户控件 - IPv4地址输入框
根据网上的改写:http://blog.csdn.net/jhqin/article/details/5823363 控件属性: Text:获取或设置string类型的IP地址 Value:获取或设置 ...
- windows命令关机
不知道为啥,远程连接的window服务器没有关机命令,感觉是不是管理员权限导致的,所以找了下用命令关机,如下 shutdown -s -t #5秒内关机 shutdown -r -t #5秒内重启