zoukankan      html  css  js  c++  java
  • 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($Pag(www.111cn.net)eArray[$i]>0)
    {
    $j = $j + sizeof($Seperator) + 1;
    }
    }
    }

    //--最后一页
    $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> ",$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." 页 ";
    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
    $content1=''测试文字,尽量长一些,www.111cn.net";
    $current=$_REQUEST['page_t'];
    $result=ff_page($content1,$current);
    echo $result;
    ?>

  • 相关阅读:
    POJ 2018 二分
    873. Length of Longest Fibonacci Subsequence
    847. Shortest Path Visiting All Nodes
    838. Push Dominoes
    813. Largest Sum of Averages
    801. Minimum Swaps To Make Sequences Increasing
    790. Domino and Tromino Tiling
    764. Largest Plus Sign
    Weekly Contest 128
    746. Min Cost Climbing Stairs
  • 原文地址:https://www.cnblogs.com/jin3350/p/4080470.html
Copyright © 2011-2022 走看看