<?php
header('content-type:text/html;charset=utf-8');
/**
* 实现文本分页
*/
//定义一个处理文本的函数,防止文本乱码
/**
* @param $str
* @param $start
* @param $length
* @return string 返回字符串
*/
function msubstr($str,$start,$length){
$str = str_replace(chr(10),'<br/>',$str);
// echo $str;
$allLength = $start + $length; //总字符串长度
$tmpstr = ''; //定义空字符串
for ($i=0;$i<$allLength;$i++){ //x循环遍历字符
if (ord(substr($str,$i,1)==0x0a)){ //判断是否是换行
$tmpstr .= '<br/>';
}
if (ord(substr($str,$i,1))>0xa0){ //ascii码的值为0xa0时表示汉字开始
$tmpstr .= substr($str,$i,2); //每次截取两个字符
$i++; // 长度加1
}else{
$tmpstr .= substr($str,$i,1); //截取一个字符
}
}
return $tmpstr;
}
//定义函数转义特殊的html字符
function unhtml($text){
$content = htmlspecialchars($text); //转换成html实体
return $content;
}
//实现分页
$text = file_get_contents('./example.txt'); //引入外部文件
$strlen = strlen(unhtml($text)); //获取字符串长度
$length = 1500; //定义每页显示长度字符
$totalpage = ceil($strlen/$length); //总页数
$page = isset($_GET['page'])?$_GET['page']:1; //获取页数
$str = msubstr($text,0,($page-1)*$length); //上一页
$str1 = msubstr($text,0,$page*$length); //当前页
$s = substr($str1,strlen($str),strlen($str1)-strlen($str));
$nextp = $page+1>$totalpage?$page:$page+1;//下一页
$prevp = $page-1<=0?$page:$page-1;//上一页
$firstp = $page=1;//首页
$lastp = $page=$totalpage;//尾页
?>
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
body,h1{
margin: 0;
padding:0;
background-color: #f1f1f1;
}
.wamp{
width: 800px;
height: 700px;
margin: 0 auto;
}
.header{
width: 100%;
height: 50px;
background-color: #f0c040;
}
.content{
width: 100%;
height: 500px;
background-color: #fff;
}
.nav{
width: 100%;
height: 100px;
background-color: chocolate;
text-align: center;
line-height: 100px;
}
.footer{
width: 100%;
height: 50px;
background-color: cadetblue;
}
h1{
line-height: 50px;
text-align: center;
background-color: #f0c040;
}
</style>
</head>
<body>
<div class="wamp">
<div class="header">
<h1>php实现长文本分页</h1>
</div>
<div class="content">
<?php echo $s; ?>
</div>
<div class="nav">
<span><?php echo '第'.$_GET['page'].'/'.$totalpage.'页';?></span>
<a href="?page=<?php echo $firstp;?>">首页</a>
<a href="?page=<?php echo $prevp;?>">上一页</a>
<a href="?page=<?php echo $nextp;?>">下一页</a>
<a href="?page=<?php echo $lastp;?>">尾页</a>
</div>
<div class="footer"></div>
</div>
</body>
</html>
php实现长文本分页
最新推荐文章于 2021-03-25 21:36:15 发布