高手来,用正则。
我给你个最笨的方法。多次explode。第一次用<tr>分割,第二次用</font>.

解决方案 »

  1.   

    呵呵
    还不如第一次用@count(@file("a.dat"))统计行数
    以后传递行数参数再用fgets读取一行
    然后把当行用split按|分割呢
      

  2.   

    这个在文本数据表中的翻页是最简单的翻页,这样说明一下golbal file
        Data.dat    ---    NOTE FILE USE
        user.dat    ---     Forum File use
    Data.dat 
    _______________________________________________________________________
    [1]    [POSTUSER]     [TITLE]        [MEM]        [POSTTIME]    [IP]
    [2]    [POSTUSER]     [TITLE]        [MEM]        [POSTTIME]    [IP]
    [3]    [POSTUSER]     [TITLE]        [MEM]        [POSTTIME]    [IP]
    [4]    [POSTUSER]     [TITLE]        [MEM]        [POSTTIME]    [IP]
    [5]    [POSTUSER]     [TITLE]        [MEM]        [POSTTIME]    [IP]说明:
         其中的[1,2,3,4,5....]是我自己添加进去的,主要是为了大家更好的理解index.php source:.__________________________________________________---====BOF====---
    <?
    $file            =        "data.dat";        //数据文件
    if(file_exits($file)){                        //容错处理,防止无数据文件存在
        $fp=fopen($file,"w+");
        fclose($fp);
        unset($fp);
    }
    $listnumber        =        20;            //每页显示条数
    $fp            =        file($file);        //读取数据到内容中
    $number            =        count($fp);        //计算总数据量
    $pagenumber        =        floor($number/$listnumber)+1;
    if($number<1){
        print "暂时无记录,欢迎留言";
        /*+--------------------------------+
              |在这里打印FORM表单或连接到表但的|
              | URL,               |
              +--------------------------------+*/
    }else{
        if(empty($_POST["page"])){                //这段IF...ELSE...是为了兼容php4.20的默认设置,防止出现无效的全局变量而写的
            $page        =    0;            //因为是从数据文本读出来的,保存在数组中,有个O下标
        }else{
            $page        =    $_POST["page"]
        }    if($page<0 || $page>pagenumber){            //检错处理,当页面参数跳出总页面或小于首页(0)的时候,将返回到第一页
            $page=0;
        }    $startnote    =    $page*$listnumber;        //开始记录位置
        $endnote    =    $startnote+$listnumber;        //结束记录位置    //for($int_a=$startnote;$int_a<$endnote;$int_a++){    //排序显示类似ASC模式    pirnt "<table>"    for($int_a=$endnote;$int_a>=$startnote;$int_a--){    //排序显示类似DESC模式
            $info=explode("\t",$fp[$int-a]);        //切割数据获得每条记录的详细数据我这里是用了一个TAB键分割
            print "<tr><td>用户:$info[1] 标题$info[2] 发言内容:$info[3] 发布时间:$info[4] IP:$info[5]";
        }    $prevpage    =    $page-1;            //上一页的PAGE数
        $nextpage    =    $page+1;            //下一页的page数    print "<tr><td>
        <a href=\"$_SERVER["PHP_SELF"]?page=0\">首页</a>
        <a href=\"$_SERVER["PHP_SELF"]?page=$prevpage\">上一页</a>
        <a href=\"$_SERVER["PHP_SELF"]?page=$nextpage\">下一页</a>
        <a href=\"$_SERVER["PHP_SELF"]?page=$pagenumber\">尾页</a>
        </table>";                        //这里您可以直接将页面的检测加到这里,那样给别人看的是舒服的,但是效果是一样的
                                    //例如:这里有可能出现20页出现        <a href="index.php?page=21">下一页</a>    或<a href="index.php?page=-1">
    }
    ?>
    ---====EOF====---