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调用三种数据库的方法(2)
Oct 09 PHP
通过文字传递创建的图形按钮
Oct 09 PHP
win7+apache+php+mysql环境配置操作详解
Jun 10 PHP
php常用Stream函数集介绍
Jun 24 PHP
解析PHP中$_FILES的使用以及注意事项
Jul 05 PHP
destoon常用的安全设置概述
Jun 21 PHP
destoon实现首页显示供应、企业、资讯条数的方法
Jul 15 PHP
PHP对象相互引用的内存溢出实例分析
Aug 28 PHP
Yii2隐藏frontend/web和backend/web的方法
Dec 12 PHP
php实现图片上传时添加文字和图片水印技巧
Apr 18 PHP
PHP写的简单数字验证码实例
May 23 PHP
PHP删除数组中指定值的元素常用方法实例分析【4种方法】
Aug 21 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
根德Grundig S400/S500/S700电路分析
2021/03/02 无线电
php中的一个中文字符串截取函数
2007/02/14 PHP
php创建基本身份认证站点的方法详解
2013/06/08 PHP
解析PHP中ob_start()函数的用法
2013/06/24 PHP
php判断一个数组是否为有序的方法
2015/03/27 PHP
微信支付开发订单查询实例
2016/07/12 PHP
mysql查找删除重复数据并只保留一条实例详解
2016/09/24 PHP
Yii 框架使用数据库(databases)的方法示例
2020/05/19 PHP
Web层改进II-用xmlhttp 无声息提交复杂表单
2007/01/22 Javascript
风吟的小型JavaScirpt库 (FY.JS).
2010/03/09 Javascript
window.name代替cookie的实现代码
2010/11/28 Javascript
js对数字的格式化使用说明
2011/01/12 Javascript
Jquery操作radio的简单实例
2014/01/06 Javascript
AngularJS基础 ng-options 指令详解
2016/08/02 Javascript
jQuery 常见小例汇总
2016/12/14 Javascript
微信小程序 共用变量值的实现
2017/07/12 Javascript
VUE脚手架具体使用方法
2019/05/20 Javascript
JavaScript Reflect Metadata实现详解
2019/12/12 Javascript
vue 监听 Treeselect 选择项的改变操作
2020/08/31 Javascript
用Python给文本创立向量空间模型的教程
2015/04/23 Python
python中的代码编码格式转换问题
2015/06/10 Python
Linux-ubuntu16.04 Python3.5配置OpenCV3.2的方法
2018/04/02 Python
mac PyCharm添加Python解释器及添加package路径的方法
2018/10/29 Python
使用Python批量修改文件名的代码实例
2019/01/24 Python
对python使用telnet实现弱密码登录的方法详解
2019/01/26 Python
pytorch使用指定GPU训练的实例
2019/08/19 Python
基于Python 中函数的 收集参数 机制
2019/12/21 Python
python 最简单的实现适配器设计模式的示例
2020/06/30 Python
解决tensorflow模型压缩的问题_踩坑无数,总算搞定
2021/03/02 Python
财务出纳员岗位职责
2013/11/26 职场文书
简历中个人自我评价范文
2013/12/26 职场文书
客服部工作职责范本
2014/02/14 职场文书
竞选班委演讲稿
2014/04/28 职场文书
个人事迹材料怎么写
2014/12/30 职场文书
班主任工作经验交流会总结
2015/11/02 职场文书
Go结合Gin导出Mysql数据到Excel表格
2022/08/05 Golang