设为首页 收藏本站
查看: 858|回复: 0

[经验分享] PHP伪静态分页

[复制链接]

尚未签到

发表于 2017-3-27 08:32:26 | 显示全部楼层 |阅读模式
<?php
class RewritePage
{
private $myde_count; //总记录数
public $myde_size; //每页记录数
private $myde_page; //当前页
private $myde_page_count; //总页数
private $page_url; //页面url
private $page_i; //起始页
private $page_ub; //结束页
public $page_limit;
function __construct($myde_count=0,$myde_size=1,$myde_page=1,$page_url)//构造函数
{
$this->myde_count=$this->numeric($myde_count);
$this->myde_size=$this->numeric($myde_size);
$this->myde_page=$this->numeric($myde_page);
$this->page_limit=($this->myde_page * $this -> myde_size) - $this -> myde_size; //下一页的开始记录
$this->page_url=$page_url; //连接的地址
if($this->myde_page<1)$this->myde_page=1; //当前页小于1的时候,,值赋值为1
if($this->myde_count<0)$this->myde_page=0;
$this->myde_page_count=ceil($this->myde_count/$this->myde_size);//总页数
if($this->myde_page_count<1)
$this->myde_page_count=1;
if($this->myde_page>$this->myde_page_count)
$this->myde_page=$this->myde_page_count;
//$this->page_i=$this->myde_page-2;
$this->page_i=$this->myde_page-2;
$this->page_ub=$this->myde_page+2;
//$this->page_ub=$this->myde_page+2;
if($this->page_i<1)$this->page_i=1;
if($this->page_ub>$this->myde_page_count){$this->page_ub=$this->myde_page_count; }
}
private function numeric($id) //判断是否为数字
{
if (strlen($id)){
if (!preg_match("/^[0-9]+$/",$id)) $id = 1;
}else{
$id = 1;
}
return $id;
}
private function page_replace($page) //地址替换
{
return str_replace("{page}", $page, $this -> page_url);
}
private function myde_home() //首页
{
if($this -> myde_page != 1){
return " <li><a href=\"".$this -> page_replace(1)."\" title=\"首页\" >首页</a></li>\n";
}else{
return " <li>&nbsp;首页&nbsp;</li>\n";
}
}
private function myde_prev() //上一页
{
if($this -> myde_page != 1){
return " <li><a href=\"".$this -> page_replace($this->myde_page-1) ."\" title=\"上一页\" >上一页</a></li>\n";
}else{
return " <li>&nbsp;上一页&nbsp;</li>\n";
}
}
private function myde_next() //下一页
{
if($this -> myde_page != $this -> myde_page_count){
return " <li><a href=\"".$this -> page_replace($this->myde_page+1) ."\" title=\"下一页\" >下一页</a></li>\n";
}else{
return " <li>&nbsp;下一页&nbsp;</li>\n";
}
}
private function myde_last() //尾页
{
if($this -> myde_page != $this -> myde_page_count){
return " <li><a href=\"".$this -> page_replace($this -> myde_page_count)."\" title=\"尾页\" >尾页</a></li>\n";
}else{
return " <li>&nbsp;尾页&nbsp;</li>\n";
}
}
function myde_write($id='page') //输出
{
$str = "<div id=\"".$id."\" class=\"pagelist\">\n <ul>\n ";
//$str .= " <li>总记录:<span>".$this -> myde_count."</span></li>\n";
//$str .= " <li><span>".$this -> myde_page."</span>/<span>".$this -> myde_page_count."</span></li>\n";
$str .= $this -> myde_home();
$str .= $this -> myde_prev();
for($page_for_i=$this->page_i;$page_for_i <= $this -> page_ub; $page_for_i++){
if($this -> myde_page == $page_for_i){
$str .= " <li class=\"currentlist\">".$page_for_i."</li>\n";
}
else{
$str .= " <li><a href=\"".$this -> page_replace($page_for_i)."\" title=\"第".$page_for_i."页\">";
$str .= $page_for_i . "</a></li>\n";
}
}
$str .= $this -> myde_next();
$str .= $this -> myde_last();
// $str .= " <li class=\"pages_input\"><input type=\"text\" value=\"".$this -> myde_page."\"";
// $str .= "onmouseover=\"javascript:this.value='';this.focus();\" onkeydown=\"javascript: if(event.keyCode==13){ location='";
// $str .= $this -> page_replace("'+this.value+'")."';return false;}\"";
// $str .= " title=\"输入您想要到达的页码,然后回车!\" /></li>\n";
$str .= " </ul></div>";
return $str;
}
}
/*-------------------------实例--------------------------------*
$page = new RewritePage(1000,5,$_GET['page'],'?page={page}');//用于动态
$page = new RewritePage(1000,5,$_GET['page'],'list-{page}.html');//用于静态或者伪静态
$page -> myde_write();//显示
*/
?>
  测试页:

<?php
require_once('RewritePage.class.php');
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>伪静态分页测试</title>
<style type="text/css">
*{font:12px/1.5em Microsoft YaHei;}
div.pagelist{text-align:left;}
div.pagelist ul{list-style-type:none;}
div.pagelist li{display:inline; margin:0 5px;}
</style>
</head>
<body>
伪静态分页
<?php
$rewritePage = new RewritePage(1000, 5, $_GET['page'] = 3, 'list_{page}.html');
echo $rewritePage -> myde_write();
?>
<hr>
动态分页
<?php
$page = new RewritePage(1000, 5, $_GET['page'] = 3, '?page={page}');
echo $page -> myde_write();
?>
</body>
</html>
 

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-355857-1-1.html 上篇帖子: 利用PHP执行.SQL文件 下篇帖子: php接收邮件类
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表