首页 > php教程 > php手册 > 正文

php实现读取超大文件的方法

php中文网
发布: 2016-06-06 20:19:51
原创
1470人浏览过

这篇文章主要介绍了php实现读取超大文件的方法,需要的朋友可以参考下

通常来说在php读取大文件的时候,我们采用的方法一般是一行行来讲取,而不是一次性把文件全部写入内存中,,这样会导致php程序卡死,下面就给大家介绍这样一个例子。

读取大文件最后几行数据:

0){ while($eof != "n"){ if(!fseek($fp, $pos, SEEK_END)){ $eof = fgetc($fp); $pos–; }else{ break; } } $str .= fgets($fp); $eof = ""; $n–; } return $str; } echo nl2br(FileLastLines('sss.txt', 4)); /** * * * 取文件最后$n行 * * * @param string $filename 文件路径 * * @param int $n 最后几行 * * @return mixed false表示有错误,成功则返回字符串 */ function FileLastLines($filename, $n){ if(!$fp = fopen($filename, 'r')){ echo "打开文件失败,请检查文件路径是否正确,路径和文件名不要包含中文"; return false; } $pos = -2; $eof = ""; $str = ""; while($n > 0){ while($eof != "n"){ if(!fseek($fp, $pos, SEEK_END)){ $eof = fgetc($fp); $pos--; }else{ break; } } $str .= fgets($fp); $eof = ""; $n--; } return $str; } echo nl2br(FileLastLines('sss . txt', 4)); function tail($fp, $n, $base = 5) { assert($n > 0); $pos = $n + 1; $lines = array(); while(count($lines) 0){ while ($t != "n"){ fseek($fp, $pos, SEEK_END); $t = fgetc($fp); $pos --; } $t = " "; $data .= fgets($fp); $line --; } fclose ($fp); echo $data; ?>

读者可以根据该实例特点加以改进和完善,使之更加符合自身应用需求。

站长俱乐部购物系统
站长俱乐部购物系统

功能介绍:1、模块化的程序设计,使得前台页面设计与程序设计几乎完全分离。在前台页面采用过程调用方法。在修改页面设计时只需要在相应位置调用设计好的过程就可以了。另外,这些过程还提供了不同的调用参数,以实现不同的效果;2、阅读等级功能,可以加密产品,进行收费管理;3、可以完全可视化编辑文章内容,所见即所得;4、无组件上传文件,服务器无需安装任何上传组件,无需支持FSO,即可上传文件。可限制文件上传的类

站长俱乐部购物系统 0
查看详情 站长俱乐部购物系统
相关标签:
php
PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号