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实现首页链接查询 友情链接检查的代码
Jan 05 PHP
php设计模式之命令模式使用示例
Mar 02 PHP
一个PHP的ZIP压缩类分享
May 04 PHP
JavaScript创建命名空间的5种写法
Jun 24 PHP
异步加载技术实现当滚动条到最底部的瀑布流效果
Sep 16 PHP
PHP获取mysql数据表的字段名称和详细信息的方法
Sep 27 PHP
php实现用于删除整个目录的递归函数
Mar 16 PHP
在Debian系统下配置LNMP的教程
Jul 09 PHP
php商品对比功能代码分享
Sep 24 PHP
PHP简单读取PDF页数的实现方法
Jul 21 PHP
laravel5.6 框架操作数据 Eloquent ORM用法示例
Jan 26 PHP
laravel框架select2多选插件初始化默认选中项操作示例
Feb 18 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的String类代码
2010/04/20 PHP
简单的PHP留言本实例代码
2010/05/09 PHP
在PHP中实现Javascript的escape()函数代码
2010/08/08 PHP
PHP+MySQL插入操作实例
2015/01/21 PHP
PHP实现Javascript中的escape及unescape函数代码分享
2015/02/10 PHP
PHP文件上传问题汇总(文件大小检测、大文件上传处理)
2015/12/24 PHP
Windows下PHP开发环境搭建教程(Apache+PHP+MySQL)
2016/06/13 PHP
Laravel 简单实现Ajax滚动加载示例
2019/10/22 PHP
PHP使用gearman进行异步的邮件或短信发送操作详解
2020/02/27 PHP
Javascript 继承机制实例
2009/08/12 Javascript
浅析js中的浮点型运算问题
2014/01/06 Javascript
JavaScript匿名函数用法分析
2015/02/13 Javascript
深入理解JavaScript系列(27):设计模式之建造者模式详解
2015/03/03 Javascript
浅谈jQuery中height与width
2015/07/06 Javascript
基于jQuery实现页面搜索功能
2020/03/26 Javascript
AngularJS实现DOM元素的显示与隐藏功能
2016/11/22 Javascript
微信小程序 支付功能开发错误总结
2017/02/21 Javascript
微信小程序实现天气预报功能
2018/07/18 Javascript
vue 点击按钮增加一行的方法
2018/09/07 Javascript
了解javascript中let和var及const关键字的区别
2019/05/24 Javascript
JS forEach跳出循环2种实现方法
2020/06/24 Javascript
[01:16:12]完美世界DOTA2联赛PWL S2 FTD vs Inki 第一场 11.21
2020/11/23 DOTA
Python translator使用实例
2008/09/06 Python
Python标准库内置函数complex介绍
2014/11/25 Python
Python同时向控制台和文件输出日志logging的方法
2015/05/26 Python
详解Python编程中对Monkey Patch猴子补丁开发方式的运用
2016/05/27 Python
详解Python中的相对导入和绝对导入
2017/01/06 Python
Python模块文件结构代码详解
2018/02/03 Python
python manage.py runserver流程解析
2019/11/08 Python
美国滑雪和滑雪板商店:Buckman
2018/03/03 全球购物
allbeauty美国:英国在线美容店
2019/03/11 全球购物
在子网210.27.48.21/30种有多少个可用地址?分别是什么?
2014/07/27 面试题
教师节演讲稿
2014/05/06 职场文书
中班上学期个人总结
2015/02/12 职场文书
2015年爱国卫生工作总结
2015/04/22 职场文书
学校少先队工作总结
2015/08/12 职场文书