PHP程序员们在编写程序代码的时候,通常都会用到文章的分页等功能的实现。每次编写不同的程序都需要编写一遍文章分页的代码,比较玛法。#t#
今天我们就为大家写了一段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>
",$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长文章分页函数的使用
- < ?php
- $content1=''测试文字,
尽量长一些,www.corange.cn";- $current=$_REQUEST['page_t'];
- $result=ff_page
($content1,$current);- echo $result;
- ?>
PHP长文章分页函数的使用与实现的代码示例如上所示。