検索
ホームページphp教程PHP源码PHP长文章分页的使用例子

文章分页用到比较多同时使用过cms的朋友也碰到过都具备了文章分页功能了,下面我们自己来看一个关于文章分页的例子,具体的操作步骤如下所示,希望文章能够帮助到各位朋友

<script>ec(2);</script>


content.txt

这个文件里面放的是内容了,如果你是与mysql数据库结合的话只要把把这一句换成你的数据库的内容即可。

index.php文件

      

       

       


           

               
               
           

       

       

           

               

教程:PHP长文章分页教程与演示


               

未来10年千万人将没有工作?


                                include('page.class.php');
                //自定义的长文章字符串,可以包含 html 代码,若字符串中有手动分页符 {nextpage} 则优先按手动分页符进行分页   
                $content = file_get_contents('content.txt');
                $ipage = isset($_GET["ipage"]) ? intval($_GET["ipage"]) : 1;
                $CP = new cutpage($content);
                $page = $CP->cut_str();
                echo $page[$ipage - 1];
                echo '
' . $CP->pagenav() . '
';
                ?>


           


       

长文章分页类  page.class.php

/* 
*  长文章分页类    
*/ 
    class cutpage{   
        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 = 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                $chr = ord ($str[$i]);   
               $count++;   
               $i++;   
               if ($i >= $len)   
                   break;   
               if ($chr & 0x80){   
                   $chr                    while ($chr & 0x80) {   
                       $i++;   
                       $chr                    }   
               }   
           }   
           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_wordpage_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)                             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;$isum_page;$i++){
    if($i==$this->ipage) {
     $str.= "".$i." ";
    }else{
     $str.= "".$i." ";
    }
   }
   
             
            return $str;   
        }   
  function show_prv_next2(){   
            $this->set_url();   
            $str = '';
   
   
   
            if ($this->sum_page>1 and $this->ipage>1){   
                $str.= "上一页 ";   
            }  
   if ($this->sum_page>1 and $this->ipagesum_page){   
                $str .= "下一页";   
            }      
            return $str;   
        }   
        function show_page_select(){   
            if ($this->sum_page>1){   
                $str = "   ";   
            }   
            return $str;   
        }   
        function show_page_select_wap(){   
            if ($this->sum_page>1){   
                $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;   
        }   
    }   
?>
声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール