从文件里面读出来最好拉file出来的数组,一个就是一行,省事儿了

解决方案 »

  1.   

    To  kingerq(多菜鸟):  行数多少无所谓, 100 行一页,也可以,
    可能会有 几十页吧!    按行读: 固定好一行显示的字数后,
    取 <br>  ,要处理 是如果不满一行,出现的 <br>, 还要进字数进行处理, 最重要的是这种方法,一下了把所有数据全取出来后才能处理.
      

  2.   

    你的数据在数据库里的话,我想只有一次性的读出了,读出之后,再进行分页,
    你看看下面的代码你是不是用得着呢??在论坛里找的没试过:P
    <?php
    // 文章分页函数,把一篇比较长的文章分为多页显示// divPage($text[,$pageNumber][,$pageSize][,$divTags][,$divGetVarName]);// $text,文章原文// $pageNumber,第几页// $pageSize,每页的字数// $divTags,文章分段时,每段的结尾以什么划分. 函数分页时,截取到离$pagesize最近的一个段落。// $divGetVarName,传输页数用什么变量表示.function divPage($text,$pageNumber=1,$pageSize=2500,$divTags="\r\n",$divGetVarName="artPage"){ global $SCRIPT_NAME,$QUERY_STRING; $startPos=$pageSize*($pageNumber-1); $endPos=$pageSize*$pageNumber; $textLength=strlen($text); if($startPos<=0) $startPos=0; else{ $startPos=strpos($text,$divTags,$startPos); } if($endPos>$textLength) $ret=substr($text,$startPos,$pageSize); else{ $endPos=strpos($text,$divTags,$endPos); $ret=substr($text,$startPos,($endPos-$startPos)); }// 下面的东西你需要自己改动一下,主要是生成分页连接的(上一页、下一页那种连接)。 $ret.=" <p align=center>"; $QUERY_STRING=ereg_replace("\&?$divGetVarName=[0-9]+","",$QUERY_STRING); if($startPos>$pageSize){ if($QUERY_STRING=="") $ret.="<a href=$SCRIPT_NAME?$divGetVarName=".($pageNumber-1).">【上一页】</a> "; else $ret.="<a href=$SCRIPT_NAME?$QUERY_STRING&$divGetVarName=".($pageNumber-1).">【上一页】</a> "; } if($endPos<$textLength){ if($QUERY_STRING=="") $ret.="<a href=$SCRIPT_NAME?$divGetVarName=".($pageNumber+1).">【下一页】</a> "; else $ret.="<a href=$SCRIPT_NAME?$QUERY_STRING&$divGetVarName=".($pageNumber+1).">【下一页】</a> "; } $ret.="</p>"; return $ret;}
    ?>
      

  3.   

    这个问题远没有你想象的那么简单。需要解决的问题很多
    1、全角字和半角字的区分。这个比较容易解决
    2、英文单词的分词。可能要放一放了!
    3、文章中可能出现的html标记。需约定处理方式
    4、标点符号的禁则。不去管他?
    5、....要解决的这个问题,实际上是排版软件所做的工作。
    你至少要模拟textarea控件或记事本的做法
    在一个至少给定宽度的区域里逐字插入,直到该区域满了(如果给定了高度)
    依次类推直到文章结束
      

  4.   

    如果数据库里面很多文章,系统硬盘有够大,完全可以增加一个字段,就是生成文本的地址,然后编程自动把数据库里面的都保存成文件,然后直接file读出来就行了
      

  5.   

    是的,给你一个在浏览器中实现的方案。供参考<table border>
    <tr>
    <td>
    <span ID=oDiv1 STYLE="height=100; 
        width:90pt; text-align:left; font-size:9pt">
    </span>
    </td>
    <td>
    <span ID=oDiv2 STYLE="height=100; 
        width:90pt; text-align:left; font-size:9pt">
    </span>
    </td>
    </tr>
    </table><script>
    var s= "我现在数据库里面有一篇<b>很长</b>的文章,我要把他读出来显示在页面上,但是一个页面显示太难看了,所以想分页显示,不知道要怎么做,偶比较菜,麻烦哪位好心人告诉我,尽量说得简单一点,我怕我看不懂。哈哈<br>";
    s += "这个问题用js解决较好。可以这样写,自己扩展一下吧";
    var hh = oDiv1.offsetHeight;
    for(i=0;i<s.length;i++) {
      oDiv1.innerHTML = s.substr(0,i);
      if(hh < oDiv1.scrollHeight) {
        do {
          oDiv1.innerHTML = s.substr(0,--i);
        }while(hh < oDiv1.scrollHeight);
        break;
      }
    }
    oDiv2.innerHTML = s.substr(i);
    </script>
      

  6.   

    to xuzuning(唠叨):厉害,不愧“唠叨”
      

  7.   

    to xuzuning(唠叨):方法确实不错,可是还考虑一个问题,
    分页时,如果他往前翻, 还要考虑开始字符.
      

  8.   

    你可以用数组记录各块在串中的起止位置,显示时用串截取方法取出这个工作一般可在内容提交时完成,并将分页符chr(12)插入后入库。
    以后只需按分页符分页即可
      

  9.   

    方法确实不错,可是如果这样, 我如何处发script  函数呢?
    如从数据库取完记录: 
    $s=$rs[content];
    如何传给下面的函数:function readtext(s,i)
    {
    oDiv1.innerHTML = s.substr(s,i*4000);
    }
      

  10.   

    假定已用分页符做好了内容分割,且内容中的特殊字符已做处理
    $s=$rs[content];
    echo <<< JS
    content = '$s'.split(/\f/); //按分页符切割成数组,从0起
    function readtext(i) {
      oDiv1.innerHTML = content[i];
    }
    JS;特殊字符处理
    按js的约定串$s中的
    ' 换成 \' 
    \r\n 换成 \\n
      

  11.   

    To:
    s=$rs[content];
    echo <<< JS
    content = '$s'.split(/\f/); //按分页符切割成数组,从0起
    function readtext(i) {
      oDiv1.innerHTML = content[i];
    }
    JS;你这写好像并不能执行 在 php 程序中 javascript 吧!
    这不是属于 程序 html  中传参吗?