php 获取文件最后几行,php获取文件的最后N行数据
本篇文章介绍的内容是php获取文件的最后N行数据,现在分享给大家,也可以给有需要的朋友一个参考
GitHub源码
代码是基于以下问题,给出的解决方案:
用php写一个函数,获取一个文本文件最后$n行内容,要求尽可能效率更高,并可以跨平台使用
我理解的可以跨平台使用,是说的文件在windows平台和linux平台的行结束符不一致问题,在代码中我们没有体现这种不同。全部是在linux系统下的代码。跨平台问题还需要理解?<?phpheader ("content-type:text/html;charset=utf-8");class GetFileLastNumRow{
private $filePath; private $fileMode = 'r'; private $rowNum = 3; public function __construct(array $config)
{
foreach ($config as $key => $value) { $this->$key = $value;
}
} public function run()
{
try { $handle = fopen($this->filePath, $this->fileMode);
fseek($handle, -1, SEEK_END); $contents = ""; $rowCount = 0; do { if (($str = fgetc($handle)) == "\n") { $rowCount++;
} $contents = $str.$contents;
fseek($handle, -2, SEEK_CUR);
} while ($rowCount < $this->rowNum);
var_export(trim($contents, "\n"));
fclose($handle);
} catch(\Exception $e) {
var_export($e->getMessage());
}
}
}class Test{
public function run()
{
$filePath = './TestData/GetFileLastNumRow/test.data'; $getFileLastNumRow = new GetFileLastNumRow(compact('filePath')); $getFileLastNumRow->run();
}
}$test = new Test();$test->run();
相关推荐:
php 获取文件最后几行,php获取文件的最后N行数据相关推荐
- matlab bdir 排序,命令行 - 如何获取按文件夹名称排序的子文件夹及其文件列表
命令行 - 如何获取按文件夹名称排序的子文件夹及其文件列表 我可以使用dir命令行来获取子文件夹及其文件的列表,按文件夹名称排序,而不仅仅是文件名? 运用 dir / s / b / o:gn> ...
- php 获取文件最后几行,PHP从文件中读取最后一行的最好方法是什么?
方法概述 在互联网上搜索,我遇到了不同的解决方案.我可以把他们分组 在三种方法: >天真的那些使用file()PHP函数; >在系统上运行尾命令的欺骗; >强大的,使用fseek() ...
- 【Android 逆向】修改运行中的 Android 进程的内存数据 ( Android 命令行中获取要调试的应用进程的 PID | 进程注入调试进程内存的 so 库 )
文章目录 一.Android 命令行中获取要调试的应用进程的 PID 二.进程注入调试进程内存的 so 库 一.Android 命令行中获取要调试的应用进程的 PID 前置博客 [Android 逆向 ...
- 小程序获取用户手机号_借助云开发5行代码获取小程序用户的手机号
最近有很多同学有获取小程序用户手机号的需求.其实云开发出现之前我们获取小程序用户的手机号特别繁琐.自从有了云开发,我们获取用户手机号变得非常简单.只需要5行代码即可. 老规矩,我们先来看下效果图 再来 ...
- Java实现图片文件的上传和获取
在做一个网站开发时,难免会遇到图片等文件的上传和获取,举一个简单的例子,就是用户的头像问题,我们应该怎么上传,怎么获取,上传到哪呢,等一系列的问题,其实像图片这些文件,存储在云存储空间比较合适,但是收 ...
- 【文件游标的设置、获取与恢复;其它文件库函数的使用】(学习笔记20--文件下)
目录 文件游标 文件游标的设置 文件游标的获取 文件游标的恢复 其它文件函数 文件检查函数 设置文件缓冲区 文件游标 在打开一个文件后,就会得到一个文件游标,而对文件的读写操作,都会从文件游标对应的文 ...
- CUBEMX配置STM32实现FTP文件传输以及使用SNTP获取网络时间并写入RTC
CUBEMX配置STM32实现FTP文件传输以及使用SNTP获取网络时间并写入RTC 引言 FTP代码库的移植 Cubemx配置SNTP以及RTC RTC配置方法 SNTP配置方法 FATFS载入RT ...
- ROS kinetic环境使用Realsense D435i获取三维点云并存为.pcd文件
ROS kinetic环境使用Realsense D435i获取三维点云并存为.pcd文件 二进制安装D435的SDK 下载intel Realsense ROS工作空间 ROS下驱动D435i获得点 ...
- 使用java对html源代码(拼装、可获取页面源代码)转换为(html页面,doc文档文件,pdf格式),doc文件转换成为pdf,文件的删除、压缩功能
目录: 1.转换成为html页面 2.html源代码转换成为doc文件 3.html源代码转换成为pdf文件 4.压缩多个文件成为一个zip文件 5.对文件进行删除 实施过程: A.html页面的实现 ...
- Linux命令行执行sqlite3命令创建表格,插入数据,获取数据
Linux命令行执行sqlite3命令创建表格,插入数据,获取数据 文章目录 Linux命令行执行sqlite3命令创建表格,插入数据,获取数据 1-进入sqlite3 2-创建数据库 3-创建表 4 ...
最新文章
- 根据函数指针地址获取函数名
- 计算机网络方面国际三大顶级会议 - MOBICOM - SIGCOMM - INFOCOM
- mysql连接编程环境_C++连接MySQL(一):环境配置和实例
- 1451C. String Equality
- 创意沙雕黑色蝙蝠侠/小丑动态404页面源码
- 大数据之-Hadoop3.x_Yarn_基础架构---大数据之hadoop3.x工作笔记0141
- 禁止执行某些讨厌的程序,如tadb.exe
- CEO们推荐的50本职场必看书籍!
- php中求10递归算法,php递归算法
- Python练手小程序—生成优惠券码写入Redis中
- Java转换图片格式 tif 转 jpg
- 高等数学:第七章 空间解析几何(2)数量积 向量积 混合积 曲面及其方程
- 软件工程中国学科排名——2021软科
- HDMI转换芯片——MS1858
- Unity 解决 An asset is marked with HideFlags.DontSave but is included in the build 问题
- 深度学习word2vec笔记之基础篇
- 深信服超融合数据通讯口地址冲突报错处理
- python阶梯图_Python制图你真的会吗?一文学会如何绘制漂亮的阶梯图
- 计算机图形学--扫描线填充算法
- 媒体格式有几种,媒体格式的异同
热门文章
- Java中的状态设计模式–示例教程
- Java注释:探究和解释
- Java Secret:加载和卸载静态字段
- 罚款200元的交通违法行为
- IntelliJ IDEA 配置文件位置
- oracle10g-创建表空间 用户
- Mybatis映射文件SQL语句模糊查询,#和$的区别和注意事项
- 弹窗要打开或保存来自_如何让 PopClip 支持印象笔记客户端:保存到印象笔记amp;高亮文字...
- linux 进城 管道丢数据,linux – 使用命名管道与bash – 数据丢失的问题
- 【FFMPEG中PTS与DTS统一转换为毫秒】