读书人

简单分页算法的修改!

发布时间: 2012-05-31 12:19:24 作者: rapoo

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

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.'<br>';        if($pagenum>1){        $ShowPage='<dt> <a href="'.$NewsID.'-'.($page-1).'.html">上一页</a> </dt>';        for($i=1;$i<$pagenum+1;$i++){            if($page==$i){                $Class='Class="onnum"';                $ShowPage.= '<dt> <a '.$Class.' href="'.$NewsID.'-'.$i.'.html">'.$i.'</a> </dt>';            }else{                $ShowPage.= '<dt> <a href="'.$NewsID.'-'.$i.'.html">'.$i.'</a> </dt>';            }        }        $ShowPage.='<dt><a href="'.$NewsID.'-'.($page+1).'.html">下一页</a ></dt>';    }

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

[解决办法]
你把它写成一个类。哪里需要分页就调用它。
[解决办法]
封装成类文件,需要就调用

读书人网 >PHP

热点推荐