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原理之变量分离/引用(Variables Separation)
Aug 09 PHP
PHPExcel读取EXCEL中的图片并保存到本地的方法
Feb 14 PHP
php判断两个日期之间相差多少个月份的方法
Jun 18 PHP
php通过前序遍历树实现无需递归的无限极分类
Jul 10 PHP
PHP数组函数知识汇总
May 12 PHP
php+MySql实现登录系统与输出浏览者信息功能
Jul 01 PHP
php使用变量动态创建类的对象用法示例
Feb 06 PHP
Yii2实现中国省市区三级联动实例
Feb 08 PHP
EarthLiveSharp中cloudinary的CDN图片缓存自动清理python脚本
Apr 04 PHP
PHP常用正则表达式精选(推荐)
May 28 PHP
TP5框架简单登录功能实现方法示例
Oct 31 PHP
PHP isset()及empty()用法区别详解
Aug 29 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
体育彩票排列三组选三算法分享
2014/03/07 PHP
php打印输出棋盘的实现方法
2014/12/23 PHP
laravel model模型定义实现开启自动管理时间created_at,updated_at
2019/10/17 PHP
PHP接口类(interface)的定义、特点和应用示例
2020/05/18 PHP
div+css布局的图片连续滚动js实现代码
2010/05/04 Javascript
js 动态加载事件的几种方法总结
2013/12/25 Javascript
JQuery简单实现锚点链接的平滑滚动
2015/05/03 Javascript
学习使用bootstrap3栅格系统
2016/04/12 Javascript
js获取隐藏元素宽高的实现方法
2016/05/19 Javascript
JS未跨域操作iframe里的DOM
2016/06/01 Javascript
JavaScript实现设置默认日期范围为最近40天的方法分析
2017/07/12 Javascript
Angular中ng-repeat与ul li的多层嵌套重复问题
2017/07/24 Javascript
vue.js在标签属性中插入变量参数的方法
2018/03/06 Javascript
vue cli2.0单页面title修改方法
2018/06/07 Javascript
Vue实现类似Spring官网图片滑动效果方法
2019/03/01 Javascript
JS回调函数原理与用法详解【附PHP回调函数】
2019/07/20 Javascript
vue获取验证码倒计时组件
2019/08/26 Javascript
在vue中根据光标的显示与消失实现下拉列表
2019/09/29 Javascript
JS document对象简单用法完整示例
2020/01/14 Javascript
javascript设计模式 ? 中介者模式原理与用法实例分析
2020/04/20 Javascript
Python获取二维矩阵每列最大值的方法
2018/04/03 Python
Python3.4解释器用法简单示例
2019/03/22 Python
Python序列对象与String类型内置方法详解
2019/10/22 Python
Python多进程编程multiprocessing代码实例
2020/03/12 Python
亚洲航空公司官方网站:AirAsia
2019/11/25 全球购物
计算机操作自荐信
2013/12/07 职场文书
材料物理专业个人求职信
2013/12/15 职场文书
安全大检查反思材料
2014/01/31 职场文书
机电一体化求职信
2014/03/10 职场文书
广告语设计及教案
2014/03/21 职场文书
2015年八一建军节演讲稿
2015/03/19 职场文书
学雷锋活动简报
2015/07/20 职场文书
Mysql中一千万条数据怎么快速查询
2021/12/06 MySQL
iSCSI服务器CHAP双向认证配置
2022/04/01 Servers
pnpm对npm及yarn降维打击详解
2022/08/05 Javascript
MySQL中LAG()函数和LEAD()函数的使用
2022/08/14 MySQL