对内容较长的文章进行分页

require “page.class.php”;$neirong = “内容内容内容内容内容内容内容内容内容内容内容内容内容内容”;$content = file_get_contents($neirong); $ipage = isset($_GET[“ipage”]) ? intval($_GET[“ipage”]) : 1; $CP = new cutpage($content); $page = $CP->cut_str(); echo $page[$ipage – 1]; echo '' . $CP->pagenav() . '';

class类

page.class.php

page_word = $page_word;    
            $this->cut_tag = array("", "
", "

", "
", "”。", "。", ".", "!", "……", "?", ",");                 $this->cut_custom = "{nextpage}";                 $tmp_page = isset($_GET["ipage"]) ? intval($_GET["ipage"]) : 1;                 $this->ipage = $tmp_page>1?$tmp_page:1;  $this->pagestr = $pagestr;         }             //统计总字数             function get_page_word(){                 $this->sum_word = $this->strlen_utf8($this->pagestr);                 return $this->sum_word;             }             /*  统计UTF-8编码的字符长度            *  一个中文,一个英文都为一个字            */           function strlen_utf8($str){                $i = 0;                $count = 0;                $len = strlen ($str);                while ($i < $len){                    $chr = ord ($str[$i]);                    $count++;                    $i++;                    if ($i >= $len)                        break;                    if ($chr & 0x80){                        $chr <<= 1;                        while ($chr & 0x80) {                            $i++;                            $chr <<= 1;                        }                    }                }                return $count;             }             //设置自动分页符号             function set_cut_tag($tag_arr=array()){                 $this->cut_tag = $tag_arr;             }             //设置手动分页符             function set_cut_custom($cut_str){                 $this->cut_custom = $cut_str;             }             function show_cpage($ipage=0){                 $this->cut_str();                 $ipage = $ipage ? $ipage:$this->ipage;                 return $this->pagearr[$ipage];             }             function cut_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_tag as $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)<$str_len_word){                                 foreach ($this->cut_tag as $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;         }             //显示上一条,下一条             function pagenav(){                 $this->set_url();                 $str = ''; //$str .= $this->ipage.'/'.$this->sum_page; for($i=1;$i<=$this->sum_page;$i++){ if($i==$this->ipage) { $str.= "".$i." "; }else{ $str.= "url.$i."'>".$i." "; } }                         return $str;             }     function show_prv_next2(){                 $this->set_url();                 $str = '';             if ($this->sum_page>1 and $this->ipage>1){                     $str.= "url.($this->ipage-1)."'>上一页 ";                 }    if ($this->sum_page>1 and $this->ipage<$this->sum_page){                     $str .= "url.($this->ipage+1)."'>下一页";                 }                return $str;             }             function show_page_select(){                 if ($this->sum_page>1){                     $str = "   ";                     for ($i=1; $i<=$this->sum_page; $i++){                         $str.= "url.$i."' ".(($this->ipage)==$i ? " selected='selected'":"").">第".$i."页";                     }                     $str.= "";                 }                 return $str;             }             function show_page_select_wap(){                 if ($this->sum_page>1){                     $str = "ipage-1)."'>";                     for ($i=1; $i<=$this->sum_page; $i++){                         $str.= "url.$i."'>第".$i."节";                     }                     $str.= "";                 }                 return $str;             }             function set_url(){                 parse_str($_SERVER["QUERY_STRING"], $arr_url);                 unset($arr_url["ipage"]);                 if (empty($arr_url)){                     $str = "ipage=";                 }else{                     $str = http_build_query($arr_url)."&ipage=";                 }                 $this->url = "http://".$_SERVER["HTTP_HOST"].$_SERVER["PHP_SELF"]."?".$str;             }         }     ?>

]]>

原创文章,作者:键盘游走者,如若转载,请注明出处:https://www.708034.com/2016/03/%e5%af%b9%e5%86%85%e5%ae%b9%e8%be%83%e9%95%bf%e7%9a%84%e6%96%87%e7%ab%a0%e8%bf%9b%e8%a1%8c%e5%88%86%e9%a1%b5/

发表评论

邮箱地址不会被公开。 必填项已用*标注