php分页功能乱码了怎么办,51、PHP文件内容分页操作,避免乱码
新浪等一些大平台新闻网站经常使用内容分页技术,把一篇文章分成若干部分,每一部分作为其中一页,以这种形式展现给用户,不仅提升了用户体验,也提高了网站加载内容的效率,但是这种做法最大的问题就是在截取字符串的时候会出现乱码,下面是我做的一个测试,基本没什么问题,没有乱码出现。
代码如下:
header('content-type:text/html;charset="utf-8"');
class StrPage{
private $file;//文件内容
private $current;//当前页
private $pageLen;//每页显示的内容长度
private $totalPage;//总页数
private $url;//url地址
public function __construct($file,$len){
$a = array(' ',' ','\t','\n','\r','\s');
$b = array('','','','','');
$this->file = str_replace($a,$b,file_get_contents($file));
$this->current = $_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 );
}
private function getUrl(){
$url = parse_url($_SERVER['REQUEST_URI']);
parse_str($url['query'],$arry);
unset($arry['page']);
$query = http_build_query($arry);
return $url['path'].'?'.$query.'&page=';
}
private function first(){
if($this->current>1){
return '首页 ';
}
}
private function next(){
if($this->currenttotalPage){
return '下一页 ';
}
}
private function pre(){
if($this->current>1){
return '上一页 ';
}
}
private function end(){
return '末页';
}
private function subStrs($str){
if(ord(substr($this->file,$str,1))>127){
if(strlen(substr($this->file,0,$str))%3==1){
return $str+=2;
}else if(strlen(substr($this->file,0,$str))%3==2){
return $str+=1;
}else{
return $str+=0;
}
}else{
return $str+=0;
}
}
public function getContents(){
$prePageLen = $this->subStrs(($this->current-1)*$this->pageLen);
$currentPageLen = $this->subStrs($this->current*$this->pageLen);
$string = substr($this->file,$prePageLen,$currentPageLen-$prePageLen);
echo $prePageLen;
echo $currentPageLen;
return $string;
}
public function pageStyle(){
return '共有'.$this->totalPage.'页 '.$this->first().$this->pre().$this->next().$this->end();
}
}
$php = new StrPage('file.txt',500);
echo '
';
echo '
echo $php->pageStyle();
echo '
';
注意,你的文件编码和php脚本的编码要一致,我这边用的是utf8编码,在截取字符串避免乱码的时候与gbk稍有不同,详情请看上一章节。
php分页功能乱码了怎么办,51、PHP文件内容分页操作,避免乱码相关推荐
- idea Java 读取rtf文件内容,解决中文乱码的问题。
百度找了很多java读取rtf文件内容的案例,都不行,不是读不出来就是乱码,要么就是多了很多编码异常的字符. 最后成功解决,得益于大佬的源码贡献,如下链接: 转载于:http://blog.sina. ...
- android mp3 lrc歌词文件utf-8歌词显示为乱码,Android读取本地json文件的方法(解决显示乱码问题)...
本文实例讲述了Android读取本地json文件的方法.分享给大家供大家参考,具体如下: 1.读取本地JSON ,但是显示汉字乱码 public static String readLocalJson ...
- java输出txt乱码_Java程序输出txt文件内容时中文乱码怎么处理?
中文乱码解决方案:代码如下,请参照public class TestStream {public static void main(String[] args) throws Exception{Da ...
- 记事本编写的html乱码,记事本编写的HTML文件,用浏览器打开乱码
今天第一次写html,就遇到了问题,用记事本编写html代码之后,另存为.html,用浏览器打开出现乱码. 这是什么原因呢,检查代码各个标签格式都没有问题,经过百度之后,才知道,记事本保存的TXT文件 ...
- c语言将数据写入文件后乱码_C语言中写入文件的字符数组为乱码,但整形数据却正常!!!...
在TC中~#include#include#include#include#includecharstr[10];staticcharstr2[10]="1234";structs ...
- android阅读器里的 txt 文本处理分页功能的实现:
txt 文本处理分页功能的实现: 网上找了txt文本分页,实现小说阅读器的功能找了很久找不到自己想要的,所以自己实现一个专门处理txt文本分页功能的类.有人建议用randomAccessFile 可 ...
- jQuery实现的简单分页功能的详细解析
分页功能在项目开发中不可或缺,老司机操作起来就和呼吸一样简单,新手恐怕就会吃力一些. 今天我回顾了一下具体的操作步骤,决定详细的分析一下每一步的实现目的及原理. 我们会创建一个简单的json文件来模拟 ...
- Jekyll分页功能
安装Jekyll分页功能 检测自己是否已经安装了该分页插件. sudo gem install jekyll-paginate 分页设置 在_config.yml中进行设置 # 分页 gems: [j ...
- 手把手带你写代码,完美实现Java分页功能
小伙伴们应该都知道,我们在项目开发中经常要用到分页功能,现在我们一般都会使用各种分页插件来进行快速实现.不过在面试的时候,面试官有时会问我们分页的实现过程与原理,这就有点让人防不胜防了.所以为了防止大 ...
最新文章
- web3j官网的完整中文翻译(java开发区块链以太坊应用的开源类库)
- exit()、_Exit() 和 _exit() 函数的区别和联系
- PWA · 前后端协作 · Node | JTalk 掘金线下活动第七期
- bootstrapV4.6.0实现标签页(改造v3.3.7)- 代码篇
- c语言输入日期返回星期几,C语言程序设计: 输入年月日 然后输出是星期几
- openstack configure
- [导入]一个好网站的策划设计
- 函数式编程(一) 认识“编程范式”和“函数”
- PASCAL VOC 2012数据集
- FPGA信号处理系列文章——CIC滤波器的再理解
- 简易cad导出pdf程序源码
- 什么叫云服务器?云服务器的概念及优势
- 自学WEB开发第一天:工欲善其事,必先利其器。基于VB语言,纠结于VS和VS code之间
- 破解tumblr背景音乐
- 微信小程序产品定位及功能介绍
- F5虚拟机(LTM Virtual Edition)安装教程
- 【算法岗求职笔记】降维 · 五问五答
- 继WhatsApp后 Facebook聊天工具Messenger用户也突破十亿人
- oracle 如何导入txt,Oracle中导入TXT并进行处理
- 华为博士招聘上机考试题目_华为校园招聘上机考试题目
热门文章
- JVM_java内存区域
- [云炬创业学笔记]第一章创业是什么测试2
- [云炬创业管理笔记]第一章测试5
- [云炬创业基础笔记]第一章创业环境测试2
- google设置在新标签页打开的方法
- 安顺计算机二级考试,安顺市2020年3月计算机二级报名时间|网上报名入口【12月18日9:00开通】...
- python读取redis存储数据的存储时间_Python读写Redis数据库操作示例
- appid 参数错误_辽宁罗茨风机参数
- Python 中 function(#) (X)格式 和 (#)在Python3.*中的注意
- MatConvnet工具箱文档翻译理解(1)