IT技术博客大学习 共学习 共进步

PHP:从一个大文件第N行开始读取M行

EasyID 2009-11-16 13:17:26 浏览 5,082 次
以下是代码片段:
function get_line( $file_name , $start , $limit )
{
 $f = new SplFileObject( $file_name , ’r’ );
 $f->seek( $start );
 $ret = Array();
 for( $i = 0 ; $i < $limit ; $i++ )
 {
  $ret[] = trim($f->current());
  $f->next();
 }
 return $ret;
}

    测试用文件

以下是代码片段:
-rw-r--r-- 1 root root 559M Sep 24 17:28 /data2/a

    测试用代码

以下是代码片段:
$time_start = microtime(true);
print_r( get_line( ’/data2/a’ , 3000 , 2 ) ) ;
$time_end = microtime(true);
$time = $time_end - $time_start;
echo "in $time seconds\n";

    测试结果

以下是引用片段:
in 0.00301194190979 seconds

建议继续学习

  1. 海量小文件存储 (阅读 9,702)
  2. 其实,文件也可以truncate (阅读 8,442)
  3. 关于Linux的文件系统cache (阅读 5,821)
  4. Perl 倒行分析文件方法。perl读文本文件,从末尾往前读. (阅读 5,503)
  5. C/C++循环获取文件中的每行数据(别以为很简单!) (阅读 5,103)
  6. linux file命令是如何识别文件的类型的 (阅读 4,941)
  7. 修改系统最大文件句柄数 (阅读 4,841)
  8. shell文件存在相关判断参数 (阅读 4,703)
  9. PHP文件上传源码分析(RFC1867) (阅读 3,901)
  10. 打开多个文件:linux ulimit max open files (阅读 3,860)