PHP 長(zhǎng)文章分頁(yè)函數(shù) 帶使用方法,不會(huì)分割段落,翻頁(yè)在底部
更新時(shí)間:2009年10月22日 13:17:32 作者:
PHP 長(zhǎng)文章分頁(yè)函數(shù) 帶使用方法,不會(huì)分割段落,翻頁(yè)在底部 ,需要的朋友可以參考下。
復(fù)制代碼 代碼如下:
<?php function ff_page($content,$page)
{
global $expert_id;
$PageLength = 2000; //每頁(yè)字?jǐn)?shù)
$CLength = strlen($content);
$PageCount = floor(($CLength / $PageLength)) + 1; //計(jì)算頁(yè)數(shù)
$PageArray=array();
$Seperator = array("\n","\r","。","!","?",";",",","”","'"); //分隔符號(hào)
//echo "頁(yè)數(shù):".$PageCount."<br>";
//echo "長(zhǎng)度:".$CLength."<br><br><br>";
//strpos() 函數(shù)返回字符串在另一個(gè)字符串中第一次出現(xiàn)的位置
if($CLength<$PageLength)
{
echo $content;
}else{
$PageArray[0]=0;
$Pos = 0;
$i=0;
//第一頁(yè)
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;
}
}
}
//--最后一頁(yè)
$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)."頁(yè))\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." 頁(yè) ";
if($page>1)
echo "<a href=$PHP_SELF?expert_id=$expert_id&page_t=".($page-1).">上一頁(yè)</a> ";
else
echo "上一頁(yè) ";
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).">下一頁(yè)</a> ";
else
echo " 下一頁(yè) ";
echo "</center>";
}
}
}?>
使用
復(fù)制代碼 代碼如下:
<?php
$content1=''測(cè)試文字,盡量長(zhǎng)一些,www.dhdzp.com";
$current=$_REQUEST['page_t'];
$result=ff_page($content1,$current);
echo $result;
?>
相關(guān)文章
淺析PHP中的字符串編碼轉(zhuǎn)換(自動(dòng)識(shí)別原編碼)
本篇文章是對(duì)PHP中字符串編碼轉(zhuǎn)換的實(shí)現(xiàn)代碼進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-07-07
PHP基于PDO調(diào)用sqlserver存儲(chǔ)過程通用方法【基于Yii框架】
這篇文章主要介紹了PHP基于PDO調(diào)用sqlserver存儲(chǔ)過程通用方法,結(jié)合實(shí)例形式分析了基于Yii框架采用pdo調(diào)用sqlserver存儲(chǔ)過程的相關(guān)操作步驟與實(shí)現(xiàn)技巧,需要的朋友可以參考下2017-10-10
PHP實(shí)現(xiàn)自動(dòng)識(shí)別原編碼并對(duì)字符串進(jìn)行編碼轉(zhuǎn)換的方法
這篇文章主要介紹了PHP實(shí)現(xiàn)自動(dòng)識(shí)別原編碼并對(duì)字符串進(jìn)行編碼轉(zhuǎn)換的方法,涉及php針對(duì)編碼的識(shí)別、轉(zhuǎn)換及數(shù)組的遍歷等相關(guān)操作技巧,需要的朋友可以參考下2016-07-07
PHP實(shí)現(xiàn)遞歸無(wú)限級(jí)分類
這篇文章主要介紹了PHP實(shí)現(xiàn)遞歸無(wú)限級(jí)分類的方法,具有一定的參考價(jià)值,需要的朋友可以參考下2015-10-10
php不使用copy()函數(shù)復(fù)制文件的方法
這篇文章主要介紹了php不使用copy()函數(shù)復(fù)制文件的方法,涉及php讀寫文件的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
2015-03-03
PHP中使用json數(shù)據(jù)格式定義字面量對(duì)象的方法
這篇文章主要介紹了PHP中使用json數(shù)據(jù)格式定義字面量對(duì)象的方法,這是一種變通方法,使用json還可以在類中生成數(shù)組哦,需要的朋友可以參考下
2014-08-08 
