一个文本文档中,有上万字,我不想一下全部读出来,那样速度太慢,如何实现“第一页 第二页 第三页 第四页 第五页”这样的效果哪 file -- 把整个文件读入一个数组中,计算这个数组就可以得到多少行了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不过它是以回车换行作为行标记的,我的文本文档中都是文字和<html>语法啊 内容都是<br><p>文字等这些没有回车换行符 算字符数 strlen() 然后截词 最好对文章进行编辑 在进行要分页的地方添加个标记 如: <break />读取文章时以<break />分割!存储文章时这样:.........<break />................<break />............. 这样$fHandle = @fopen($fileName, "rb");while (!feof($fHandle)) { $content = @fGetS($fHandle, "1024")); // 一次读1024个字节,楼主不妨在这里做文章。。 //然后再这里处理} 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;}分页函数 可以先通过filesize()确定文件大小,然后再通过fgets()读出指定长度的文本,再做分页比如,有一个2M的文件,有X行,通过filesize确定大小后,可事先定义每页显示多长的文本,如1024b,然后再用fgets()读出行,用fread最好,但不太好确定读到指定的长度是否刚好为一个汉字的结束,因此可能产生乱码。 有成熟的作法吗?我是用 htmlarea在线编辑器编辑文字以后存到文本文档中的,内容都是文字和html文字,如<br><p>等,没有\n这样的字符了。如何正常的分页哪? 自己解析HTML啦,最好是将可以分页的部分做个标志。比如“<!--可分页内容开始-->"“<!--可分页内容结束-->"这样的话,里面的东东就比较好处理了,因为现实中一般只是分内容,你要是想分布局什么的,那是不可能的。 另一问题呀:如果在搜索的时候显示如百度那样的页数呀。具体就是,比如点第 20页。就会显示第 10 — 29页这样。点 30页。就会显示 20 — 39 这样。在线等。多谢呀-----------------------------这个最简单了,你都是保留有当前页号的,用循环for($i=curPage-10;$i<curpage+10;$i++)生成链接不就OK啦 file -- 把整个文件读入一个数组中,计算这个数组就可以得到多少行了-----------------------这个方法好笨的,跟一下处理整个文件有啥效率上的区别?还不如将此次读写到的文件指针位置保存到数据库或一个文件,下次根据这个指针位置继续读就好了,这样分页才更有效率一些。 $FILE导致的上传问题。 加()和不加()区别竟然这么大,这是为什么??? 正序倒序问题 关于php中mb_strlen函数问题!! 简单问题 phpmyadmin配置问题,提示Failed opening required 请教问题,在线等,急................ sql语句 可变变量 可变名字 我想用php实现生成Excel文件,求实现方法 生成静态系统的疑惑?求教各位同志 用php提取mysql数据库中的时间,在库中是05-5-21,到网页中显示时就变了!!!
存储文章时这样:
.....
....
<break />
.....
......
.....
<break />
.......
......
$fHandle = @fopen($fileName, "rb");
while (!feof($fHandle)) {
$content = @fGetS($fHandle, "1024")); // 一次读1024个字节,楼主不妨在这里做文章。。
//然后再这里处理
}
{
$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;
}分页函数
比如“<!--可分页内容开始-->"“<!--可分页内容结束-->"
这样的话,里面的东东就比较好处理了,因为现实中一般只是分内容,你要是想分布局什么的,那是不可能的。
如果在搜索的时候显示如百度那样的页数呀。具体就是,比如点第 20页。
就会显示第 10 — 29页这样。点 30页。就会显示 20 — 39 这样。
在线等。多谢呀-----------------------------
这个最简单了,你都是保留有当前页号的,用循环for($i=curPage-10;$i<curpage+10;$i++)生成链接不就OK啦
这个方法好笨的,跟一下处理整个文件有啥效率上的区别?还不如将此次读写到的文件指针位置保存到数据库或一个文件,下次根据这个指针位置继续读就好了,这样分页才更有效率一些。