Posted in PHP onOctober 22, 2009
<?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; } } } //--最后一页 $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=''测试文字,尽量长一些,3water.com"; $current=$_REQUEST['page_t']; $result=ff_page($content1,$current); echo $result; ?>
PHP 长文章分页函数 带使用方法,不会分割段落,翻页在底部
声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。
Reply on: @reply_date@
@reply_contents@