本篇文章介绍的内容是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行数据相关推荐

  1. matlab bdir 排序,命令行 - 如何获取按文件夹名称排序的子文件夹及其文件列表

    命令行 - 如何获取按文件夹名称排序的子文件夹及其文件列表 我可以使用dir命令行来获取子文件夹及其文件的列表,按文件夹名称排序,而不仅仅是文件名? 运用 dir / s / b / o:gn> ...

  2. php 获取文件最后几行,PHP从文件中读取最后一行的最好方法是什么?

    方法概述 在互联网上搜索,我遇到了不同的解决方案.我可以把他们分组 在三种方法: >天真的那些使用file()PHP函数; >在系统上运行尾命令的欺骗; >强大的,使用fseek() ...

  3. 【Android 逆向】修改运行中的 Android 进程的内存数据 ( Android 命令行中获取要调试的应用进程的 PID | 进程注入调试进程内存的 so 库 )

    文章目录 一.Android 命令行中获取要调试的应用进程的 PID 二.进程注入调试进程内存的 so 库 一.Android 命令行中获取要调试的应用进程的 PID 前置博客 [Android 逆向 ...

  4. 小程序获取用户手机号_借助云开发5行代码获取小程序用户的手机号

    最近有很多同学有获取小程序用户手机号的需求.其实云开发出现之前我们获取小程序用户的手机号特别繁琐.自从有了云开发,我们获取用户手机号变得非常简单.只需要5行代码即可. 老规矩,我们先来看下效果图 再来 ...

  5. Java实现图片文件的上传和获取

    在做一个网站开发时,难免会遇到图片等文件的上传和获取,举一个简单的例子,就是用户的头像问题,我们应该怎么上传,怎么获取,上传到哪呢,等一系列的问题,其实像图片这些文件,存储在云存储空间比较合适,但是收 ...

  6. 【文件游标的设置、获取与恢复;其它文件库函数的使用】(学习笔记20--文件下)

    目录 文件游标 文件游标的设置 文件游标的获取 文件游标的恢复 其它文件函数 文件检查函数 设置文件缓冲区 文件游标 在打开一个文件后,就会得到一个文件游标,而对文件的读写操作,都会从文件游标对应的文 ...

  7. CUBEMX配置STM32实现FTP文件传输以及使用SNTP获取网络时间并写入RTC

    CUBEMX配置STM32实现FTP文件传输以及使用SNTP获取网络时间并写入RTC 引言 FTP代码库的移植 Cubemx配置SNTP以及RTC RTC配置方法 SNTP配置方法 FATFS载入RT ...

  8. ROS kinetic环境使用Realsense D435i获取三维点云并存为.pcd文件

    ROS kinetic环境使用Realsense D435i获取三维点云并存为.pcd文件 二进制安装D435的SDK 下载intel Realsense ROS工作空间 ROS下驱动D435i获得点 ...

  9. 使用java对html源代码(拼装、可获取页面源代码)转换为(html页面,doc文档文件,pdf格式),doc文件转换成为pdf,文件的删除、压缩功能

    目录: 1.转换成为html页面 2.html源代码转换成为doc文件 3.html源代码转换成为pdf文件 4.压缩多个文件成为一个zip文件 5.对文件进行删除 实施过程: A.html页面的实现 ...

  10. Linux命令行执行sqlite3命令创建表格,插入数据,获取数据

    Linux命令行执行sqlite3命令创建表格,插入数据,获取数据 文章目录 Linux命令行执行sqlite3命令创建表格,插入数据,获取数据 1-进入sqlite3 2-创建数据库 3-创建表 4 ...

最新文章

  1. 根据函数指针地址获取函数名
  2. 计算机网络方面国际三大顶级会议 - MOBICOM - SIGCOMM - INFOCOM
  3. mysql连接编程环境_C++连接MySQL(一):环境配置和实例
  4. 1451C. String Equality
  5. 创意沙雕黑色蝙蝠侠/小丑动态404页面源码
  6. 大数据之-Hadoop3.x_Yarn_基础架构---大数据之hadoop3.x工作笔记0141
  7. 禁止执行某些讨厌的程序,如tadb.exe
  8. CEO们推荐的50本职场必看书籍!
  9. php中求10递归算法,php递归算法
  10. Python练手小程序—生成优惠券码写入Redis中
  11. Java转换图片格式 tif 转 jpg
  12. 高等数学:第七章 空间解析几何(2)数量积 向量积 混合积 曲面及其方程
  13. 软件工程中国学科排名——2021软科
  14. HDMI转换芯片——MS1858
  15. Unity 解决 An asset is marked with HideFlags.DontSave but is included in the build 问题
  16. 深度学习word2vec笔记之基础篇
  17. 深信服超融合数据通讯口地址冲突报错处理
  18. python阶梯图_Python制图你真的会吗?一文学会如何绘制漂亮的阶梯图
  19. 计算机图形学--扫描线填充算法
  20. 媒体格式有几种,媒体格式的异同

热门文章

  1. Java中的状态设计模式–示例教程
  2. Java注释:探究和解释
  3. Java Secret:加载和卸载静态字段
  4. 罚款200元的交通违法行为
  5. IntelliJ IDEA 配置文件位置
  6. oracle10g-创建表空间 用户
  7. Mybatis映射文件SQL语句模糊查询,#和$的区别和注意事项
  8. 弹窗要打开或保存来自_如何让 PopClip 支持印象笔记客户端:保存到印象笔记amp;高亮文字...
  9. linux 进城 管道丢数据,linux – 使用命名管道与bash – 数据丢失的问题
  10. 【FFMPEG中PTS与DTS统一转换为毫秒】