1.代码的$page接收有没有问题?
2.输出直接用
echo nl2br(substr($counter,($page-1)*200,$page*200));

解决方案 »

  1.   

    很明显的错误吗
    你的page参数都没有获取
    $page=$_REQUEST['page'];
    这个都没有怎么可能翻页呢
      

  2.   

    以前刚好有一份代码,你试一下,我用过了是没问题:
    <?
    $c_page=$_GET['page']; //当前页
    $contstr="文字内容,可从数据库中查询出";// 文字内容,可从数据库中查询出
    $listbyte=2000; //每页显示字节数,正常情况下可设置为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=".$addurl."&page=$i>$i</a>]  ";}
    //输出当前页内容
    $stag=$page-1;
    $startb=$listat[$stag];
    if($startb>0) //去除首个换行
    $startb=$startb+1;
    $cont=substr($contstr,$startb,$listat[$page]-$startb);//要开启tidy,网上查一下,很多资料的
    $config = array('indent' => TRUE,'output-xhtml' => TRUE,'wrap' => 200);
    $tidy = tidy_repair_string($cont,$config,'raw'); //返回的是tidy对象
    //echo $tidy;
    //echo iconv('gb2312','gb2312//IGNORE',$tidy);
    $encode=mb_detect_encoding($tidy,"ASCII,CP936,EUC-CN,BIG-5,UTF-8,EUC-TW"); 
    echo mb_convert_encoding($tidy,'gb2312',$encode);
    ?>
      

  3.   


    <?php
    session_start();
    $page = (int)$_GET['page']?:1;
    ?> 
    <html> 
    <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> 
    <title>超长文本的分页显示 </title> 
    <style type="text/css"> 
    <!-- 
    .STYLE1 {font-size: 12px} 
    .STYLE2 {font-size: 13px} 
    --> 
    </style> 
    </head> 
    <body> 
    <table width="500" border="1" cellpadding="0" cellspacing="0" bgcolor="#9AFAFC"> 
      <tr> 
        <td height="27" align="center"> <strong>超长文本的分页显示 </strong> </td> 
      </tr> 
      <tr> 
        <td height="90" align="left" valign="middle"> <span class="STYLE2">&nbsp;&nbsp; 
    <?php 
      if($page)
      { 
        $fp=fopen("file/file.txt","r"); 
        $counter=fgets($fp); 
        $length=strlen($counter); 
        $page_count=ceil($length/200); 
        include("function.php"); 
        $c=msubstr($counter,0,($page-1)*200); 
        $c1=msubstr($counter,0,$page*200); 
        echo substr($c1,strlen($c),strlen($c1)-strlen($c)); 
      }
    ?> 
        </span> </td> 
      </tr> 
    </table> 
    <table width="500" border="1" cellpadding="0" cellspacing="0" bgcolor="#9AFAFC"> 
      <tr> 
        <td width="42%" align="center" valign="middle"> <span class="STYLE1">&nbsp;&nbsp;页次: <?php echo $page;?> / <?php echo $page_count;?> 页 </span> </td> 
        <td width="58%" height="28" align="left" valign="middle"> <span class="STYLE1"> &nbsp;分页: 
         <?php 
          if($page!=1)
          {  
            echo  " <a href=index.php?page=1>首页 </a>&nbsp;"; 
            echo " <a href=index.php?page=".($page-1).">上一页 </a>&nbsp;"; 
          } 
          if($page <$page_count)
          { 
            echo " <a href=index.php?page=".($page+1).">下一页 </a>&nbsp;"; 
            echo  " <a href=index.php?page=".$page_count.">尾页 </a>"; 
          }
         ?>
        </span> </td> 
      </tr> 
    </table> 
    </body> 
    </html> //function.php*************************** 
    <?php 
    function msubstr($str,$start,$len)
    {  
      $strlen=$start+$len; 
      for($i=0;$i <$strlen;$i++) 
      { 
        if(ord(substr($str,$i,1))>0xa0) 
        { 
          $tmpstr.=substr($str,$i,2); 
           $i++; 
        }
        else
        { 
          $tmpstr.=substr($str,$i,1);
        } 
      } 
      return $tmpstr; 

    ?> 
      

  4.   

    syu的第三行有误阿,谁改一下,改好我就选他结贴啦
      

  5.   

    第三行是5.1版写法.
    改为 $page = (int)$_GET['page']?(int)$_GET['page']:1;
    就行了