PHP支持html的内容分页类
2012-12-03 15:47
381 查看
根据别人的内容分页类改的,首先感谢原作者的无私奉献,由于之前的不支持html,分页后会出现很多不完整的html标签,个人改进了一些,依据</p>标签分页,不适用与每页严格固定字数的分页
下面的是代码,求优化,求改进,求指点……
下面是调用代码,主要给想我一样的菜鸟们看的,嘿嘿
本文出自 “我是爱好者” 博客,请务必保留此出处http://zhangxh075.blog.51cto.com/2762033/1077244
下面的是代码,求优化,求改进,求指点……
<?php class Page{ private $file;//文件内容 private $current;//当前页 private $totalPage;//总的页数 private $url;//url地址 private $pageLen;//每页显示的内容长度 function __construct($file,$len=8000){ //$len表示每页显示的字符数,根据每页显示的字符数算出页数,再根据页数计算出每页显示的段落数(</p>) $this->file = $file; $this->current=isset($_GET['page'])?$_GET['page']:1; $this->pageLen = $len; $this->totalPage = $this->getTotalPage(); $this->url= $this->getUrl(); } //获取文件内容显示总共有多少页 private function getTotalPage(){ return ceil(strlen($this->file)/$this->pageLen); } //获得并分离url private function getUrl(){ $url =parse_url($_SERVER['REQUEST_URI']); parse_str($url['query'],$queryArr); unset($queryArr['page']); $queryStr = http_build_query($queryArr); return $url['path'].'?'.$queryStr.'&page='; } //首页 private function first(){ if($this->current>1)return "<a href='".$this->url."1'>首页</a>"; } //上一页 private function pre(){ if($this->current>1)return "<a href='".$this->url.($this->current-1)."'>上一页</a>"; } //下一页 private function next(){ if($this->current<$this->totalPage)return "<a href='".$this->url.($this->current+1)."'>下一页</a>"; } //末页 private function end(){ if($this->current<$this->totalPage) return "<a href='".$this->url.$this->totalPage."'>末页</a>"; } //分页列表 private function pager(){ for ($i=1;$i<=$this->totalPage;$i++){ if($i==$this->current){ $pageListStr.="<span style='font-weight:bold;color:#f00'>".$i."</span> "; }else{ $pageListStr.="<a href='".$this->url.$i."'>".$i." </a>"; } } return $pageListStr; } //分页样式(显示方式,具体效果用css实现) public function pagerStyle($style=1){ switch ($style){ case 1: return "共有".$this->totalPage."页 ".$this->first().' '.$this->pre().' '.$this->pager().$this->next().' '.$this->end(); break; case 2; return $this->pager(); break; } } //获取分页内容 public function getContents(){ return $this->abc($this->current); } //截取文件内容 public function abc($page){ $num = substr_count($this->file,'</p>'); //统计</p>出现的次数 $a = ceil($num/$this->totalPage); //每页要显示的段落的个数,也就是</p>的个数 $arr = explode('</p>',$this->file); //以</p>为标识将原数据划分成数组 $str = ''; //存放新闻内容 for($i=($page-1)*$a;$i<$page*$a;$i++){ $str .= $arr[$i]; //按数量循环输出 } return $str; } } ?>
下面是调用代码,主要给想我一样的菜鸟们看的,嘿嘿
$pageNum = 8000; //每页字符数 $page = new Page($con,$pageNum); echo $page->getContents().'<br />'; echo $page->pagerStyle();
本文出自 “我是爱好者” 博客,请务必保留此出处http://zhangxh075.blog.51cto.com/2762033/1077244
相关文章推荐
- [PHP]使用PHPMailer发送带附件并支持HTML内容的邮件
- 在HTML中利用js调用php的内容
- 在HTML中利用js调用php的内容
- WEB SERVER如何支持CGI/PHP/Perl ___ 程序的核心内容(1)
- iis 支持html执行php输出
- PHP配置使PHP在页面中支持<?= $content; ?>输出内容
- 小随笔——PHP清空页面内容、在html中嵌套使用
- 使用PHPMailer发送带附件并支持HTML内容的邮件
- JS编辑器获取选择内容的HTML多浏览器兼容性写法(支持Chorme、Firefox)
- PHP分页类,生成分页html字符串
- PHP实现网页内容html标签补全和过滤的方法小结【2种方法】
- php获取网页标题和内容函数(不包含html标签)
- 用PHP过滤html里可能被利用来引入外部危险内容的代码
- PHPMailer发送HTML内容、带附件的邮件实例
- php5.4以下版本json不支持不转义内容中文的解决方法
- 文件上传的实现 (马马 2001年09月28日 17:14) PHP同样支持上传文件的功能,但并不是所有支持PHP的网站都支持此功能,特别是免费的网站。 实现上传,首先要在HTML上加入上传文件的“<FORM>”表格。 <form me
- PHP配置使PHP在页面中支持<?= $content; ?>输出内容
- PHP配置使PHP在页面中支持<?= $content; ?>输出内容
- 总结php删除html标签和标签内的内容的方法
- JS编辑器获取选择内容的HTML多浏览器兼容性写法(支持Chorme、Firefox)