file -- 把整个文件读入一个数组中,计算这个数组就可以得到多少行了

解决方案 »

  1.   

    不过它是以回车换行作为行标记的,我的文本文档中都是文字和<html>语法啊
      

  2.   

    内容都是<br><p>文字等这些没有回车换行符
      

  3.   

    算字符数 strlen()  然后截词
      

  4.   

    最好对文章进行编辑 在进行要分页的地方添加个标记 如: <break />读取文章时以<break />分割!
    存储文章时这样:
    .....
    ....
    <break />
    .....
    ......
    .....
    <break />
    .......
    ......
      

  5.   

    这样
    $fHandle = @fopen($fileName, "rb");
    while (!feof($fHandle)) {
        $content = @fGetS($fHandle, "1024")); // 一次读1024个字节,楼主不妨在这里做文章。。
        //然后再这里处理
    }
      

  6.   

    function page_meta ($total, $pp, $curr_page, $base_url, $prefix, $expand = 3, $style = '')
    {
    $total_page = ceil ($total / $pp);

    if ($curr_page == 0)
    $curr_page = 1;

    if ($total_page == 0)
    $total_page = 1;

    $prev_page = $curr_page - 1;
    $next_page = $curr_page + 1;

    if (strpos ($base_url, '?'))
    $str_conn = '&';
    else
    $str_conn = '?';

    if ($style)
    $str_style = " class=\"$style\"";
    else
    $str_style = '';

    if ($curr_page == 1) {
    $str_first_page = '第一页';
    $str_prev_page = '上一页';
    }
    else {
    $str_first_page = '<a href=' . $base_url . $str_conn . $prefix . '=1' . $str_style . '>第一页</a>';
    $str_prev_page = '<a href=' . $base_url . $str_conn . $prefix . '=' . $prev_page . $str_style . '>上一页</a>';
    }

    if ($curr_page == $total_page) {
    $str_last_page = '最后一页';
    $str_next_page = '下一页';
    }
    else {
    $str_last_page = '<a href=' . $base_url . $str_conn . $prefix . '=' . $total_page . $str_style . '>最后一页</a>';
    $str_next_page = '<a href=' . $base_url . $str_conn . $prefix . '=' . $next_page . $str_style . '>下一页</a>';
    }

    $str_list = "<b>$curr_page</b>";

    for ($tmp = 1; $tmp <= $expand; $tmp++) {
    $p_page = $curr_page - $tmp;
    $n_page = $curr_page + $tmp;

    if ($curr_page - $tmp >= 1)
    $str_list = '<a href=' . $base_url . $str_conn . $prefix . '=' . $p_page . $str_style . '>' . $p_page . '</a> ' . $str_list;

    if ($curr_page + $tmp <= $total_page)
    $str_list = $str_list . ' <a href=' . $base_url . $str_conn . $prefix . '=' . $n_page . $str_style . '>' . $n_page . '</a>';
    }

    $page_meta = array (
    'str_first_page' => $str_first_page ,
    'str_prev_page' => $str_prev_page ,
    'str_list' => $str_list ,
    'str_next_page' => $str_next_page ,
    'str_last_page' => $str_last_page
    );

    return $page_meta;
    }分页函数
      

  7.   

    可以先通过filesize()确定文件大小,然后再通过fgets()读出指定长度的文本,再做分页比如,有一个2M的文件,有X行,通过filesize确定大小后,可事先定义每页显示多长的文本,如1024b,然后再用fgets()读出行,用fread最好,但不太好确定读到指定的长度是否刚好为一个汉字的结束,因此可能产生乱码。
      

  8.   

    有成熟的作法吗?我是用 htmlarea在线编辑器编辑文字以后存到文本文档中的,内容都是文字和html文字,如<br><p>等,没有\n这样的字符了。如何正常的分页哪?
      

  9.   

    自己解析HTML啦,最好是将可以分页的部分做个标志。
    比如“<!--可分页内容开始-->"“<!--可分页内容结束-->"
    这样的话,里面的东东就比较好处理了,因为现实中一般只是分内容,你要是想分布局什么的,那是不可能的。
      

  10.   

    另一问题呀:
    如果在搜索的时候显示如百度那样的页数呀。具体就是,比如点第 20页。
    就会显示第 10 — 29页这样。点 30页。就会显示 20 — 39 这样。
    在线等。多谢呀-----------------------------
    这个最简单了,你都是保留有当前页号的,用循环for($i=curPage-10;$i<curpage+10;$i++)生成链接不就OK啦
      

  11.   

    file -- 把整个文件读入一个数组中,计算这个数组就可以得到多少行了-----------------------
    这个方法好笨的,跟一下处理整个文件有啥效率上的区别?还不如将此次读写到的文件指针位置保存到数据库或一个文件,下次根据这个指针位置继续读就好了,这样分页才更有效率一些。