PHP实现适用于文件内容操作的分页类


Posted in PHP onJune 15, 2016

本文实例为大家分享了PHP实现文件内容操作的分页类,强调一下只针对文件的操作,供大家参考,具体内容如下

<?php 
class StrPage {
 private $current;  //当前页 
 private $file;  //操作文件
 private $totalPage;  //总的页数
 private $url;  //传递的参数
 private $pageLen;  //每页显示的长度
 
 function __construct( $file,$len = 200 ){
 $this->file = file_get_contents($file);
 $this->pageLen = $len;
 $this->current = isset($_GET['page'])?$_GET['page']:1;
 $this->totalPage = $this->getTotalPage();
 $this->url = $this->getUrl();
 }
 
 
 //获取到这个文件总的长度
 private function getTotalPage(){
 return ceil(strlen($this->file)/$this->pageLen);
 }
 
 //获取当前传递的参数,保留参数,page参数动态变化
 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>";
 }
 
 public function pageList(){
 $pageListStr = '';
 for ($i=1;$i<=$this->totalPage;$i++){
  if($i==$this->current){
  $pageListStr.="<span style='font-size:20px;color:#f00'>".$i."</span> ";
  }else{
  $pageListStr.="<a href='".$this->url.$i."'>".$i." </a>";
  }
 }
 return $pageListStr;
 }
 
 public function pageStyle($style=1){
  switch ($style){
  case 1:
   return "共有".$this->totalPage."页".$this->first().$this->pre().$this->pageList().$this->next().$this->end();
   break;
  case 2;
  return $this->pageList();
  break;
  }
 }
 
 public function getContents(){
 $prePageLen = strlen($this->subStrs($this->current-1));
 $currentPageLen = strlen($this->subStrs($this->current));
 return substr($this->file, $prePageLen,$currentPageLen-$prePageLen);
 }
 
 public function subStrs($page){ 
  $string = '';
  $len= $page*$this->pageLen;
  for( $i=0; $i<$len; $i++ ){
   if( ord(substr($this->file,$i,1))>0xa0 ){
   $string .= substr($this->file,$i,3);
   $i = $i+2;
  }else{
   $string .= substr($this->file, $i,1);
  }
  }
  return $string;
  
 }
 
}

精彩专题分享:php分页功能操作

以上就是本文的全部内容,希望对大家学习PHP程序设计有所帮助。

PHP 相关文章推荐
PHP中的超全局变量
Oct 09 PHP
Apache2 httpd.conf 中文版
Dec 06 PHP
让的PHP代码飞起来的40条小技巧(提升php效率)
Apr 12 PHP
php中对2个数组相加的函数
Jun 24 PHP
thinkPHP实现瀑布流的方法
Nov 29 PHP
CodeIgniter 完美解决URL含有中文字符串
May 13 PHP
thinkPHP分组后模板无法加载问题解决方法
Jul 12 PHP
php实现替换手机号中间数字为*号及隐藏IP最后几位的方法
Nov 16 PHP
YII2 实现多语言配置的方法分享
Jan 11 PHP
php使用 readfile() 函数设置文件大小大小的方法
Aug 11 PHP
PHP实现求连续子数组最大和问题2种解决方法
Dec 26 PHP
详解thinkphp的Auth类认证
May 28 PHP
PHP实现适用于自定义的验证码类
Jun 15 #PHP
php实现常见图片格式的水印和缩略图制作(面向对象)
Jun 15 #PHP
使用JavaScript创建新样式表和新样式规则
Jun 14 #PHP
PHP list() 将数组中的值赋给变量的简单实例
Jun 13 #PHP
PHP处理二进制数据的实现方法
Jun 13 #PHP
PHP 在数组中搜索给定的简单实例 array_search 函数
Jun 13 #PHP
phpmailer简单发送邮件的方法(附phpmailer源码下载)
Jun 13 #PHP
You might like
用PHP实现的随机广告显示代码
2007/06/14 PHP
PHP 创建文件(文件夹)以及目录操作代码
2010/03/04 PHP
数据库中排序的对比及使用条件详解
2012/02/23 PHP
JQuery 入门实例1
2009/06/25 Javascript
[JSF]使用DataModel处理表行事件的实例代码
2013/08/05 Javascript
Javascript 遍历页面text控件详解
2014/01/06 Javascript
js对象的复制继承实例
2015/01/10 Javascript
jquery实现可关闭的倒计时广告特效代码
2015/09/02 Javascript
Angular.JS学习之依赖注入$injector详析
2016/10/20 Javascript
jQuery.ajax实现根据不同的Content-Type做出不同的响应
2016/11/03 Javascript
微信小程序技巧之show内容展示,上传文件编码问题
2017/01/23 Javascript
vue构建单页面应用实战
2017/04/10 Javascript
使用js获取伪元素的content实例
2017/10/24 Javascript
详解vue-cli脚手架中webpack配置方法
2018/08/22 Javascript
nodejs读取本地中文json文件出现乱码解决方法
2018/10/10 NodeJs
VUE-cli3使用 svg-sprite-loader
2018/10/20 Javascript
浅谈bootstrap layer.open中end的使用方法
2019/09/12 Javascript
jQuery 常用特效实例小结【显示与隐藏、淡入淡出、滑动、动画等】
2020/05/19 jQuery
js实现3D旋转效果
2020/08/18 Javascript
Python多继承原理与用法示例
2018/08/23 Python
python实现五子棋小程序
2019/06/18 Python
Django处理Ajax发送的Get请求代码详解
2019/07/29 Python
python多线程同步之文件读写控制
2021/02/25 Python
python定时任务 sched模块用法实例
2019/11/04 Python
详解Anaconda安装tensorflow报错问题解决方法
2020/11/01 Python
美国顶级防滑鞋:Shoes For Crews
2017/03/27 全球购物
马来西亚在线健康商店:Medipal Malaysia
2020/04/13 全球购物
美国亚马逊旗下时尚女装网店:SHOPBOP(支持中文)
2020/10/17 全球购物
int和Integer有什么区别
2013/05/25 面试题
俄语翻译实习生的自我评价分享
2013/11/06 职场文书
《富饶的西沙群岛》教学反思
2014/04/09 职场文书
统计专业自荐书
2014/07/06 职场文书
终止劳动合同协议书
2014/10/05 职场文书
工作态度恶劣检讨书
2015/05/06 职场文书
Spring Boot 整合 Apache Dubbo的示例代码
2021/07/04 Java/Android
使用Nginx搭载rtmp直播服务器的方法
2021/10/16 Servers