首页 > php代码 > PHP 长文章分页函数

PHP 长文章分页函数

 PHP程序员们在编写程序代码的时候,通常都会用到文章的分页等功能的实现。每次编写不同的程序都需要编写一遍文章分页的代码,比较玛法。

今天我们就为大家写了一段PHP长文章分页函数,方便大家的代码编写:

<?php
function ff_page($content, $page) {
    global $expert_id;
    $PageLength = 2000; //每页字数
    $CLength = strlen($content);
    $PageCount = floor(($CLength / $PageLength)) + 1; //计算页数
    $PageArray = array();
    $Seperator = array(
        "\n",
        "\r",
        "。",
        "!",
        "?",
        ";
",
        ",",
        "”",
        "’"
    ); //分隔符号
    //echo "页数:".$PageCount."< br>";
    //echo "长度:".$CLength."< br>< br>< br>";
    //strpos() 函数返回字符串在
    另一个字符串中第一次出现的位置if ($CLength < $PageLength) {
        echo $content;
    } else {
        $PageArray[0] = 0;
        $Pos = 0;
        $i = 0;
        //第一页
        for ($j = 0; $j < sizeof($Seperator); $j++) {
            //echo $Seperator[$j];
            $Pos = strpos($content, $Seperator[$j], $PageArray[$i] + 1900);
            while ($Pos > 0 && $Pos < ($i + 1) * $PageLength && $Pos > $i * $PageLength) {
                $PageArray[$i] = $Pos;
                $Pos = strpos($Pos + $PageLength, $content, $Seperator[$j]);
            }
            if ($PageArray[$i] > 0) {
                $j = $j + sizeof($Seperator) + 1;
            }
        }
        //---
        for ($i = 1; $i < $PageCount - 1; $i++) {
            for ($j = 0; $j < sizeof($Seperator); $j++) {
                //echo $Seperator[$j];
                $Pos = strpos($content, $Seperator[$j], $PageArray[$i - 1] + 1900);
                while ($Pos > 0 && $Pos < ($i + 1) * $PageLength && $Pos > $i * $PageLength) {
                    $PageArray[$i] = $Pos;
                    $Pos = strpos($Pos + $PageLength, $content, $Seperator[$j]);
                }
                if ($PageArray[$i] > 0) {
                    $j = $j + sizeof($Seperator) + 1;
                }
            }
        }
        //--PHP长文章分页函数最后一页
        $PageArray[$PageCount - 1] = $CLength;
        //$page=2;
        if ($page == 1) {
            $output = substr($content, 0, $PageArray[$page - 1] + 2);
        }
        if ($page > 1 && $page < = $PageCount) {
            $output = substr($content, $PageArray[$page - 2] + 2, $PageArray[$page - 1] - $PageArray[$page - 2]);
            $output = " (上接第" . ($page - 1) . "页)\n" . $output;
        }
        echo str_replace("\n", "< br>&nbsp;
&nbsp;&nbsp;", $output);
        //if($page==$PageCount)
        //return $output=substr($content,
        $PageArray[$page - 2] + 2, $PageArray[$page - 1] - $PageArray[$page - 2]);
        if ($PageCount > 1) {
            echo "< br>< br>< br>< center>";
            echo "<font color='ff0000'>" . $page . "< /font>/" . $PageCount . " 页 &nbsp;";
            if ($page > 1) echo "< a href=$PHP_SELF?expert_id=$expert_id&page_t=" . ($page - 1) . ">上一页< /a> ";
            else echo "上一页 ";
            for ($i = 1; $i < = $PageCount; $i++) {
                echo "< a href=$PHP_SELF?expert_id=$expert_id&page_t=" . $i . ">[" . $i . "]< /a> ";
            }
            if ($page < $PageCount) echo " < a href=$PHP_SELF?expert_id=$expert_id&page_t=" . ($page + 1) . ">下一页< /a> ";
            else echo " 下一页 ";
            echo "< /center>";
        }
    }
}


PHP长文章分页函数的使用 

<?php   
$content1="测试文字,
尽量长一些,www.phprm.com";   
$current=$_REQUEST['page_t'];   
$result=ff_page
($content1,$current);   
echo $result;


PHP长文章分页函数的使用与实现的代码示例如上所示。


本文地址:http://www.phprm.com/code/7438a396c8bc31f863be9a7de13dd6a6.html

转载随意,但请附上文章地址:-)

标签:none

发表留言