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 相关文章推荐
rrmdir php中递归删除目录及目录下的文件
May 15 PHP
关于php mvc开发模式的感想
Jun 28 PHP
PHP写杨辉三角实例代码
Jul 17 PHP
php+ajax做仿百度搜索下拉自动提示框(有实例)
Aug 21 PHP
PHP FTP操作类代码( 上传、拷贝、移动、删除文件/创建目录)
May 10 PHP
PHP中使用Session配合Javascript实现文件上传进度条功能
Oct 15 PHP
ThinkPHP2.x防范XSS跨站攻击的方法
Sep 25 PHP
ThinkPHP发送邮件示例代码
Oct 08 PHP
PHP文件操作详解
Dec 30 PHP
基于php流程控制语句和循环控制语句(讲解)
Oct 23 PHP
PHP下载文件函数与用法示例
Sep 27 PHP
PHP手机号码及邮箱正则表达式实例解析
Jul 11 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序列号生成函数和字符串替换函数代码
2012/06/07 PHP
PHP IE中下载附件问题解决方法
2014/01/07 PHP
php中filter函数验证、过滤用户输入的数据
2014/01/13 PHP
php几个预定义变量$_SERVER用法小结
2014/11/07 PHP
php5.3不能连接mssql数据库的解决方法
2014/12/27 PHP
64位windows系统下安装Memcache缓存
2015/12/06 PHP
javascript 页面只自动刷新一次
2009/07/10 Javascript
google 搜索框添加关键字实现代码
2010/04/24 Javascript
jquery插件之easing 动态菜单
2010/08/21 Javascript
JavaScript?Apple设备检测示例代码
2013/11/15 Javascript
jQuery点击自身以外地方关闭弹出层的简单实例
2013/12/24 Javascript
js仿黑客帝国字母掉落效果代码分享
2020/11/08 Javascript
jquery 中toggle的2种用法详解(推荐)
2016/09/02 Javascript
打造自己的jQuery插件入门教程
2016/09/23 Javascript
H5基于iScroll实现下拉刷新和上拉加载更多
2017/07/18 Javascript
javascript代码优化的8点总结
2018/01/29 Javascript
vue-star评星组件开发实例
2018/03/01 Javascript
VUE脚手架具体使用方法
2019/05/20 Javascript
vue 使用async写数字动态加载效果案例
2020/07/18 Javascript
React倒计时功能实现代码——解耦通用
2020/09/18 Javascript
Python学习笔记之os模块使用总结
2014/11/03 Python
Python 正则表达式的高级用法
2016/12/04 Python
python Socket之客户端和服务端握手详解
2017/09/18 Python
python使用正则表达式替换匹配成功的组并输出替换的次数
2017/11/22 Python
Python设计模式之观察者模式简单示例
2018/01/10 Python
python读取.mat文件的数据及实例代码
2019/07/12 Python
关于Python中的向量相加和numpy中的向量相加效率对比
2019/08/26 Python
python eventlet绿化和patch原理
2020/11/21 Python
python 监控服务器是否有人远程登录(详细思路+代码)
2020/12/18 Python
美国诺德斯特龙百货官网:Nordstrom
2016/08/23 全球购物
职业规划书如何设计?
2014/01/09 职场文书
大学生的创业计划书就该这么写
2014/01/30 职场文书
2015年大学生社会实践评语
2015/03/26 职场文书
七一慰问简报
2015/07/20 职场文书
2016中秋节广告语
2016/01/28 职场文书
面试提问mysql一张表到底能存多少数据
2022/03/13 MySQL