数据库中一条很长的记录要分成几页,该如何实现?用字符串截取函数截取substr()倒可以实现,但是会出现乱码问题,或者html标签会被切割

解决方案 »

  1.   

    你用什么编辑器。
    用编辑器里的分页符 。
    在php 里 用 explode 来分割。 分割出来的就是你想要的了!!
      

  2.   

    你用什么编辑器。
    用编辑器里的分页符 。
    在php 里 用 explode 来分割。 分割出来的就是你想要的了!!
      

  3.   

    用的FCK编辑器,插入分页符或特殊标记,现在用的就是这样的方法,但感觉有点不是太方便,有木有直接实现分页的方法???
      

  4.   


    前短时间刚发过一个帖子,最后的讨论结果:最常用的单个文章分页办法恐怕就是手动标记符了。你去看一下把。希望对你有帮助http://topic.csdn.net/u/20120302/08/ed735e0b-0995-4d0a-8880-15b6a6abba0e.html唠叨给的资料
    http://topic.csdn.net/u/20100816/02/f954078b-2e2b-440e-a063-ef8beb9d8370.html?46280
      

  5.   

    这玩意要写好还挺费时间的试试先将内容的顶层html标签找出来,作为整体对待,这部分不可分割,遇到闭合标签没做好,估计就瞎啦
    <div>
     ……
      ……<span>……</span>
    </div>
    <table……>
        <table……>
        </table>
    </table>
      

  6.   

    运用这个函数,是否要开启php.ini中的配置,但开启后,没有作用,依旧乱码
      

  7.   

    $c_page="";
    if(isset($_GET['page']))$c_page=$_GET['page']; //去掉中间空格//当前页
    $contstr="第一行GDSGVFGFDGFDGFDFDFDSF
    第2行FDSAFDSFASDFF
    第3行FDSAFDSAFDSAFSDAFDSFDSAF
    第4行DSAFDSAFSDAF
    第5行FDSAFDSFDSFDSFFDERRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR";// 文字内容,可从数据库中查询出
    $listbyte=7; //每页显示字节数,正常情况下可设置为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;
    break;
    }
    $endAt=strpos($contstr,"\n",$lookAt); // \n
    //如果余下的内容不足一页的1/5加到本页或找不到分页符则作一页处理
    if($endAt>$contlen-$listbyte/5 or intval($endAt)<1){
    $j++;
    $listat[$j]=$contlen; ///
    break;
    }
    else{
    $j++;
    $listat[$j]=$endAt;
    $lookAt=$endAt+$listbyte;
    }

    //打印页码
    $pagenum=$j;//总页
    $page=intval($c_page);
    if(empty($page) or $page<1 or $page>$pagenum) $page=1;
    if($pagenum>1)
    for($i=1;$i<$pagenum+1;$i++){echo "<a href='?page=$i'>$i 页</a> ";}//输出当前页内容
    $stag=$page-1;
    $startb=$listat[$stag];
    if($startb>0) //去除首个换行
    $startb=$startb+1;
    $cont=substr($contstr,$startb,$listat[$page]-$startb);
    echo "<BR/>文章内容:<BR/>";
    if($page>1)
    echo "[接上页] &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
    echo $cont;
    ?>用上面的方法可以实现上文章的分页,但是有的时候好像又不行,大家帮忙看下,是不是代码有什么问题啊
      

  8.   

    楼主能确定内容中的换行符一定是"\n"?如果接收到"<br/>"、"\r"呢?
    所以建议自定义分页符,如"-----%rand(100000,999999)%-----"