php 长内容自动分页,PHP实现长文章分页

php/*

* 长文章分页类

*/classcutpage{private$pagestr;//被切分的内容private$pagearr;//被切分文字的数组格式private$sum_word;//总字数(UTF-8格式的中文字符也包括)private$sum_page;//总页数private$page_word;//一页多少字private$cut_tag;//自动分页符private$cut_custom;//手动分页符private$ipage;//当前切分的页数,第几页private$url;function__construct($pagestr,$page_word=1000){$this->page_word=$page_word;$this->cut_tag=array("","","

","

","”。","。",".","!","……","?",",");$this->cut_custom="{nextpage}";$tmp_page=intval(trim($_GET["ipage"]));$this->ipage=$tmp_page>1?$tmp_page:1;$this->pagestr=$pagestr;}functioncut_str(){$str_len_word=strlen($this->pagestr);//获取使用strlen得到的字符总数$i=0;if($str_len_word<=$this->page_word){//如果总字数小于一页显示字数$page_arr[$i]=$this->pagestr;}else{if(strpos($this->pagestr,$this->cut_custom)){$page_arr=explode($this->cut_custom,$this->pagestr);}else{$str_first=substr($this->pagestr,0,$this->page_word);//0-page_word个文字 cutStr为func.global中的函数foreach($this->cut_tagas$v){$cut_start=strrpos($str_first,$v);//逆向查找第一个分页符的位置if($cut_start){$page_arr[$i++]=substr($this->pagestr,0,$cut_start).$v;$cut_start=$cut_start+strlen($v);break;}}if(($cut_start+$this->page_word)>=$str_len_word){//如果超过总字数$page_arr[$i++]=substr($this->pagestr,$cut_start,$this->page_word);}else{while(($cut_start+$this->page_word)cut_tagas$v){$str_tmp=substr($this->pagestr,$cut_start,$this->page_word);//取第cut_start个字后的page_word个字符$cut_tmp=strrpos($str_tmp,$v);//找出从第cut_start个字之后,page_word个字之间,逆向查找第一个分页符的位置if($cut_tmp){$page_arr[$i++]=substr($str_tmp,0,$cut_tmp).$v;$cut_start=$cut_start+$cut_tmp+strlen($v);break;}}}if(($cut_start+$this->page_word)>$str_len_word){$page_arr[$i++]=substr($this->pagestr,$cut_start,$this->page_word);}}}}$this->sum_page=count($page_arr);//总页数$this->pagearr=$page_arr;return$page_arr;}//显示上一条,下一条functionpagenav(){$this->set_url();$str='';//$str .= $this->ipage.'/'.$this->sum_page;for($i=1;$i<=$this->sum_page;$i++){if($i==$this->ipage){$str.="".$i." "

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值