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 相关文章推荐
如何对PHP程序中的常见漏洞进行攻击(下)
Oct 09 PHP
PHP游戏编程25个脚本代码
Feb 08 PHP
PHP实现读取一个1G的文件大小
Aug 24 PHP
PHP中is_file不能替代file_exists的理由
Mar 04 PHP
CodeIgniter框架过滤HTML危险代码
Jun 12 PHP
PHP管理依赖(dependency)关系工具 Composer的自动加载(autoload)
Aug 18 PHP
smarty模板引擎中变量及变量修饰器用法实例
Jan 22 PHP
php blowfish加密解密算法
Jul 02 PHP
PHP+iframe图片上传实现即时刷新效果
Nov 18 PHP
PHP自动生成缩略图函数的源码示例
Mar 18 PHP
Yii2.0框架模型添加/修改/删除数据操作示例
Jul 18 PHP
php实现推荐功能的简单实例
Sep 29 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
php中使用explode查找某个字符是否存在的方法
2011/07/12 PHP
PHP中使用cURL实现Get和Post请求的方法
2013/03/13 PHP
php中将数组转成字符串并保存到数据库中的函数代码
2013/09/29 PHP
在PHP站点的页面上添加Facebook评论插件的实例教程
2016/01/08 PHP
Zend Framework教程之Zend_Layout布局助手详解
2016/03/04 PHP
php字符串的替换,分割和连接方法
2016/05/23 PHP
php 截取utf-8格式的字符串实例代码
2016/10/30 PHP
利用ajax和PHP实现简单的流程管理
2017/03/23 PHP
Prototype Class对象学习
2009/07/19 Javascript
js自定义鼠标右键的实现原理及源码
2014/06/23 Javascript
javascript学习笔记(五)原型和原型链详解
2014/10/08 Javascript
jQuery on()方法示例及jquery on()方法的优点
2015/08/27 Javascript
JQuery实现简单的图片滑动切换特效
2015/11/22 Javascript
微信小程序Server端环境配置详解(SSL, Nginx HTTPS,TLS 1.2 升级)
2017/01/12 Javascript
利用node.js如何搭建一个简易的即时响应服务器
2017/05/28 Javascript
Bootstrap Multiselect 常用组件实现代码
2017/07/09 Javascript
JavaScript截屏功能的实现代码
2017/07/28 Javascript
浅谈NodeJs之数据库异常处理
2017/10/25 NodeJs
父组件中vuex方法更新state子组件不能及时更新并渲染的完美解决方法
2018/04/25 Javascript
微信小程序云开发(数据库)详解
2019/05/17 Javascript
JS代码屏蔽F12,右键,粘贴,复制,剪切,选中,操作实例
2019/09/17 Javascript
vue实现拖拽效果
2019/12/23 Javascript
有趣的JavaScript隐式类型转换操作实例分析
2020/05/02 Javascript
vue 解决无法对未定义的值,空值或基元值设置反应属性报错问题
2020/07/31 Javascript
JS页面动态绘图工具SVG,Canvas,VML介简介
2020/10/16 Javascript
Python中将字典转换为列表的方法
2016/09/21 Python
Python进程间通信之共享内存详解
2017/10/30 Python
python中os和sys模块的区别与常用方法总结
2017/11/14 Python
pip matplotlib报错equired packages can not be built解决
2018/01/06 Python
django文档学习之applications使用详解
2018/01/29 Python
python 将md5转为16字节的方法
2018/05/29 Python
python 制作网站筛选工具(附源码)
2021/01/21 Python
CSS3中利用animation属性创建雪花飘落特效
2014/05/14 HTML / CSS
美国最大的网上冲印店:Shutterfly
2017/01/01 全球购物
幼儿园元旦家长感言
2014/02/27 职场文书
Python数据类型最全知识总结
2021/05/31 Python