当前位置:Gxlcms > PHP教程 > 简单分页算法的修改!

简单分页算法的修改!

时间:2021-07-01 10:21:17 帮助过:2人阅读

【急】简单分页算法的修改!!!!
PHP code

//内容分页
    $c_page=$_GET['page']; //当前页
    $contstr=$NewsCentent; //新闻内容
    //从数据库读出的内容
    $listbyte=8000; //每页显示字节数,正常情况下可设置为5000或其他
    //##寻找文章分页点----------
    $contlen=strlen($contstr);    //新闻长度
    $j=0; //总页数
    $listat[0]=0;    //分页点位置数组
    $lookAt=0;        //分页点的起始寻找位置
    for($i=1;$i<$contlen/$listbyte+1;$i++){
     if($lookAt<$listbyte)
        $lookAt=$listbyte;    //寻找分页点的起始位置是页面的默认长度
     if($lookAt>$contlen){    //如果不足一页的长度
        $j++;
        $listat[$j]=$contlen;//存储第$j页的分页点位置    
        break;
      }
        $endAt=strpos($contstr,"\n",$lookAt); // 寻找本页最后一段内容的结束位置(一段内容在一页内)
        //如果余下的内容不足一页的1/5加到本页,或找不到分页符则作一页处理
        if($endAt>$contlen-$listbyte/5 or intval($endAt)<1){
        $j++;
        $listat[$j]=$contlen; ///
        break;
        }
        else{
        $j++;
        $listat[$j]=$endAt;            //存储第$j页的分页点位置
        $lookAt=$endAt+$listbyte;    //下一次寻找分页点的起始搜寻位置
        }
    }

//打印页码
    $pagenum=$j;//总页
    $page=intval($c_page);
    if(empty($page) or $page<1 or $page>$pagenum) $page=1;
    //$row[0]为ID号,翻页后要根据ID来显示内容
    
    //
输出当前页内容 $stag=$page-1; $startb=$listat[$stag];//开始位置 if($startb>0) //去除首个换行 $startb=$startb+1; $cont=substr($contstr,$startb,$listat[$page]-$startb); //heightlight_string("$cont");//php高亮代码输出 $ShowContent=$cont.'
'; if($pagenum>1){ $ShowPage='
上一页
'; for($i=1;$i<$pagenum+1;$i++){ if($page==$i){ $Class='Class="onnum"'; $ShowPage.= '
'.$i.'
'; }else{ $ShowPage.= '
'.$i.'
'; } } $ShowPage.='
下一页
'; }

以上是简单的PHP新闻分页算法和新闻显示,是自动分页算法,我想加一个手动分页符,能在任意位置分页,请高手修改一下,不胜感激!!!

------解决方案--------------------
你把它写成一个类。哪里需要分页就调用它。
------解决方案--------------------
封装成类文件,需要就调用

人气教程排行