ホームページ >バックエンド開発 >PHPチュートリアル >簡易ページングアルゴリズムの修正!

簡易ページングアルゴリズムの修正!

WBOY
WBOYオリジナル
2016-06-13 13:29:43876ブラウズ

【緊急】簡易ページングアルゴリズムの修正! ! ! !

PHP コード
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->
//内容分页
    $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 ニュース ページング アルゴリズムとニュース表示です。任意の位置でページ分割できる自動ページング アルゴリズムを追加します。専門家の方、編集してください、ありがとうございます。 ! !

-----解決策---------
それをクラスとして書きます。ページングが必要な場合はどこでも呼び出します。
------解決策------------------
それをクラスファイルにカプセル化し、必要に応じて
を呼び出します。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。