php仿ZOL分页类代码


Posted in PHP onOctober 02, 2008

php仿ZOL分页类代码

php仿ZOL分页类代码

php仿ZOL分页类代码

<?php /** 
* 功能:分页类 
* 作者:phpox 
* 时间:Sat Jul 14 18:15:02 CST 2007 
*/ 
defined('PHPOX') or die(header("HTTP/1.1 403 Not Forbidden")); 
class page{ 
public $infocount; 
public $pagecount; 
public $items; 
public $pageno; 
public $start; 
public $next; 
public $prev; 
public $maxpages; 
public function __construct($infocount,$items,$pageno){ 
$this->infocount = $infocount; 
$this->items = $items; 
$this->pageno = $pageno; 
$this->pagecount = $this->getpagecount(); 
$this->justpageno(); 
$this->start = $this->getstart(); 
$this->gotoprev(); 
$this->gotonext(); 
} 
private function justpageno(){ 
if (emptyempty($this->pageno) || $this->pageno < 1){ 
$this->pageno = 1; 
} 
if ($this->pageno > $this->pagecount){ 
$this->pageno = $this->pagecount; 
} 
} 
private function gotonext(){ 
$next = $this->pageno + 1; 
if ($next > $this->pagecount){ 
$this->next = $this->pagecount; 
}else { 
$this->next = $next; 
} 
} 
private function gotoprev(){ 
$prev = $this->pageno -1; 
if ($prev < 1){ 
$this->prev = 1; 
}else { 
$this->prev = $prev; 
} 
} 
private function getpagecount(){ 
return ceil($this->infocount / $this->items); 
} 
private function getstart(){ 
if ($this->pageno <= 1){ 
return 0; 
}else { 
return ($this->pageno - 1) * $this->items; 
} 
} 
/** 
* 样式0(php) 
*/ 
public function showpage($ctlname,$actname,$args = null){ 
if ($args !== null){ 
if (is_array($args)){ 
$str = '&'.encode_url_args($args); 
} 
} 
$out = ''; 
$out .= "每页显示{$this->items}条信息 "; 
$out .= "当前页<strong><font color=\"#FF0000\">{$this->pageno}</font>/{$this->pagecount}</strong> "; 
$out .= "共有{$this->infocount}条信息 "; 
$out .= "<a href='?ctl={$ctlname}&act={$actname}&p=1$str'>首页</a> "; 
$out .= "<a href='?ctl={$ctlname}&act={$actname}&p={$this->prev}$str'>上一页</a> "; 
$out .= "<a href='?ctl={$ctlname}&act={$actname}&p={$this->next}$str'>下一页</a> "; 
$out .= "<a href='?ctl={$ctlname}&act={$actname}&p={$this->pagecount}$str'>尾页</a> "; 
$out .= "跳转到:"; 
$out .= "<select id=\"page\" name=\"page\" onchange=\"javascript:window.location='?ctl={$ctlname}&act={$actname}$str&p='+this.options[this.selectedIndex].value;\">\n"; 
$out .= " <option value=\"1\">请选择</option>\n"; 
for ($i = 1;$i <= $this->pagecount;$i++){ 
$out .= " <option value=\"$i\">第{$i}页</option>\n"; 
} 
$out .= "</select>\n"; 
return $out; 
} 
/** 
* 样式1(html) 
*/ 
function htmlshowpage($path,$list,$film){ 
$out = ''; 
$out .= "每页显示{$this->items}条信息 "; 
$out .= "当前页<strong><font color=\"#FF0000\">{$this->pageno}</font>/{$this->pagecount}</strong> "; 
$out .= "共有{$this->infocount}条信息 "; 
$out .= "<a href='{$path}$list/{$film}_1.html'>首页</a> "; 
$out .= "<a href='{$path}$list/{$film}_{$this->prev}.html'>上一页</a> "; 
$out .= "<a href='{$path}$list/{$film}_{$this->next}.html'>下一页</a> "; 
$out .= "<a href='{$path}$list/{$film}_{$this->pagecount}.html'>尾页</a> "; 
$out .= "跳转到:"; 
$out .= "<select id=\"page\" name=\"page\" onchange=\"javascript:window.location='{$path}html/$list/{$film}_'+this.options[this.selectedIndex].value +'.html'\">\n"; 
$out .= " <option value=\"1\">请选择</option>\n"; 
for ($i = 1;$i <= $this->pagecount;$i++){ 
$out .= " <option value=\"$i\">第{$i}页</option>\n"; 
} 
$out .= "</select>\n"; 
return $out; 
} 
/** 
* 样式2(discuz) 
*/ 
function multi($mpurl,$page = 10) { 
$multipage = ''; 
$mpurl .= strpos($mpurl, '?') !== false ? '&' : '?'; 
$realpages = 1; 
if($this->infocount > $this->items) { 
$offset = 2; 
$realpages = @ceil($this->infocount / $this->items); 
$pages = $this->maxpages && $this->maxpages < $realpages ? $this->maxpages : $realpages; 
if($page > $pages) { 
$from = 1; 
$to = $pages; 
} else { 
$from = $this->pageno - $offset; 
$to = $from + $page - 1; 
if($from < 1) { 
$to = $this->pageno + 1 - $from; 
$from = 1; 
if($to - $from < $page) { 
$to = $page; 
} 
} elseif($to > $pages) { 
$from = $pages - $page + 1; 
$to = $pages; 
} 
} 
$multipage = ($this->pageno - $offset > 1 && $pages > $page ? '<a href="'.$mpurl.'page=1" class="first">1 ...</a>' : ''). 
($this->pageno > 1 ? '<a href="'.$mpurl.'page='.($this->pageno - 1).'" class="p_redirect"><<</a>' : ''); 
for($i = $from; $i <= $to; $i++) { 
$multipage .= $i == $this->pageno ? '<a class="p_curpage"><strong>'.$i.'</strong></a>' :'<a href="'.$mpurl.'page='.$i.'" class="p_num">'.$i.'</a>'; 
} 
$multipage .= ($this->pageno < $pages ? '<a href="'.$mpurl.'page='.($this->pageno + 1).'" class="p_redirect">>></a>' : ''). 
($to < $pages ? '<a href="'.$mpurl.'page='.$pages.'" class="last">... '.$realpages.'</a>' : ''). 
($pages > $page ? '<kbd><input type="text" name="custompage" size="3" onkeydown="if(event.keyCode==13) {window.location=\''.$mpurl.'page=\'+this.value; return false;}" /></kbd>' : ''); 
$multipage = $multipage ? '<div class="p_bar"><a class="p_total"> '.$this->infocount.' </a><a class="p_pages"> '.$this->pageno.'/'.$pages.' </a>'.$multipage.'</div>' : ''; 
} 
return $multipage; 
} 
/** 
* 样式3(zol) 
*/ 
public function zol($mpurl) 
{ 
$mpurl .= strpos($mpurl, '?') !== false ? '&' : '?'; 
$code = '<div class="f22 mt10 hei14">'; 
$code .= '<div style="line-height:30px">第<font class="a_hong14b">'.$this->pageno.'</font><font class="a_hei14">/'.$this->pagecount.'</font>页 每页<font class="a_hei14">'.$this->items.'</font> 共<font class="a_hong14b">'.$this->infocount.'</font>款产品</div>'; 
$code .= '<table border="0" align="right" cellpadding="0" cellspacing="3">'; 
$code .= '<tr>'; 
if ($this->pageno == $this->prev) 
{ 
$code .= "<td width='64' align='center' class='bd_hui huei14b'><a disabled='disabled' class='a_hui12b'><<上一页</a></td>"; 
} 
else 
{ 
$code .= "<td width='64' align='center' class='bd_lan a_lan14'><a href='{$mpurl}page={$this->prev}' class='a_lan12b'><<上一页</a></td>"; 
} 
$i = 10 ; 
$k = 1; 
if ($this->pageno < 1) 
{ 
$this->pageno = 1; 
} 
if ($this->pageno > $this->pagecount) 
{ 
$this->pageno = $this->pagecount; 
} 
$s = $this->pageno-2; 
if ($s <= 0) 
{ 
$s = 1; 
} 
$e = $this->pageno+2; 
if ($e < 5 ) 
{ 
$e = 5; 
} 
if ($e > $this->pagecount) 
{ 
$e = $this->pagecount; 
} 
for ($j=$s;$j<=$e;$j++) 
{ 
if ($this->pageno == $j) 
{ 
$code .= '<td width="22" bgcolor="#2E6AB1" class="bei14" align="center">'.$j.'</td>'; 
} 
else 
{ 
$code .= "<td width='22' align='center' class='bd_lan a_lan14' onMouseOver=\"this.style.border='1px solid #2062A4'\" onMouseOut=\"this.style.border='1px solid #AACCEE'\" style=\"CURSOR: hand\" onClick=\"javascript:window.location=('{$mpurl}page={$j}')\">$j</td>"; 
} 
} 
if ($this->pageno == $this->pagecount) 
{ 
$code .= "<td align='center' width='64' class='bd_hui huei14b'><a disabled='disabled' >下一页>></a></td>"; 
} 
else 
{ 
$code .= "<td align='center' width='64' class='bd_lan lan14b'><a href='{$mpurl}page={$this->next}' class='a_lan12b'>下一页>></a></td>"; 
} 
$code .= '</tr>'; 
$code .= '</table>'; 
$code .= '</div>'; 
return $code; 
} 
}
PHP 相关文章推荐
真正的ZIP文件操作类(php)
Jul 21 PHP
php 求质素(素数) 的实现代码
Apr 12 PHP
PHP遍历数组的几种方法
Mar 22 PHP
解析php DOMElement 操作xml 文档的实现代码
May 10 PHP
PHP调用MsSQL Server 2012存储过程获取多结果集(包含output参数)的详解
Jul 03 PHP
PHP判断数据库中的记录是否存在的方法
Nov 14 PHP
php定义一个参数带有默认值的函数实例分析
Mar 16 PHP
PHP实现通过URL提取根域名
Mar 31 PHP
Yii2中cookie用法示例分析
Jul 18 PHP
PHP编译configure时常见错误的总结
Aug 17 PHP
ThinkPHP5.0框架实现切换数据库的方法分析
Oct 30 PHP
php使用fputcsv实现大数据的导出操作详解
Feb 27 PHP
php生成缩略图的类代码
Oct 02 #PHP
PHP实时显示输出
Oct 02 #PHP
PHP在字符串中查找指定字符串并删除的代码
Oct 02 #PHP
php之对抗Web扫描器的脚本技巧
Oct 01 #PHP
利用PHP制作简单的内容采集器的原理分析
Oct 01 #PHP
php数组总结篇(一)
Sep 30 #PHP
PHP EOT定界符的使用详解
Sep 30 #PHP
You might like
基于mysql的论坛(4)
2006/10/09 PHP
php文件包含的几种方式总结
2019/09/19 PHP
Thinkphp5.0 框架的请求方式与响应方式分析
2019/10/14 PHP
JS类库Bindows1.3中的内存释放方式分析
2007/03/08 Javascript
JavaScript 学习点滴记录
2009/04/24 Javascript
JS控制显示隐藏兼容问题(IE6、IE7、IE8)
2010/04/01 Javascript
NodeJs中的非阻塞方法介绍
2012/06/05 NodeJs
火狐textarea输入法的bug的触发及解决
2013/07/24 Javascript
js限制checkbox选中个数以限制六个为例
2014/07/15 Javascript
Jsonp post 跨域方案
2015/07/06 Javascript
js实现的万能flv网页播放器代码
2016/04/30 Javascript
EasyUI加载完Html内容样式渲染完成后显示
2016/07/25 Javascript
使用nodejs中httpProxy代理时候出现404异常的解决方法
2016/08/15 NodeJs
微信小程序 两种滑动方式(横向滑动,竖向滑动)详细及实例代码
2017/01/13 Javascript
原生javascript上传图片带进度条【实例分享】
2017/04/06 Javascript
JavaScript字符串检索字符的方法
2017/06/23 Javascript
简单谈谈JS中的正则表达式
2017/09/11 Javascript
JavaScript时间戳与时间日期间相互转换
2017/12/11 Javascript
AngularJS模态框模板ngDialog的使用详解
2018/05/11 Javascript
详解a标签添加onclick事件的几种方式
2019/03/29 Javascript
ES6使用 Array.includes 处理多重条件用法实例分析
2020/03/02 Javascript
微信小程序单选框自定义赋值
2020/05/26 Javascript
JavaScript/TypeScript 实现并发请求控制的示例代码
2021/01/18 Javascript
[01:05:40]VG vs Newbee 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
Python中的各种装饰器详解
2015/04/11 Python
python安装PIL模块时Unable to find vcvarsall.bat错误的解决方法
2016/09/19 Python
python Tkinter版学生管理系统
2019/02/20 Python
Python实现的爬取百度贴吧图片功能完整示例
2019/05/10 Python
应用OpenCV和Python进行SIFT算法的实现详解
2019/08/21 Python
Python3爬虫带上cookie的实例代码
2020/07/28 Python
互动出版网:专业书籍
2017/03/21 全球购物
最新的小工具和卓越的产品设计:Oh That Tech!
2019/08/07 全球购物
企业给企业的表扬信
2014/01/13 职场文书
基层党支部公开承诺书
2014/05/29 职场文书
2015年事业单位办公室文员工作总结
2015/04/24 职场文书
开票证明
2015/06/23 职场文书