php读取大文件的方法
Posted 北京流浪儿
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php读取大文件的方法相关的知识,希望对你有一定的参考价值。
1、使用file 函数直接读取
$starttime = microtime_float(); ini_set(‘memory_limit‘,‘-1‘); $file = "testfile.txt"; $data = file($file); $line = count($data);//总行数 $lastLine = $data[count($data)-1]; //最后一行 echo count($data); echo $endtime = microtime_float(); function microtime_float(){ list($usec,$sec) = explode(" ",microtime()); return (float($usec) + float($sec)) }
缺点,非常耗时,此方法不推荐使用,因为需要把文件全部载入内存
2、使用fgets函数,一行一行读取
<?php $file = fopen("testfile.txt","r"); while(!feof($file)) { echo fgets($file); } fclose($file);
3、是spl库函数
<?php try{ foreach( new SplFileObject(‘testfile.txt‘) as $line) echo $line.‘<br />‘; }catch (Exception $e){ echo $e->getMessage(); }
另外网上有很多按照块读取文件的,有兴趣的读者可以试试,我试了没成功,好像必须含有换行符“\n”才可以。
以上是关于php读取大文件的方法的主要内容,如果未能解决你的问题,请参考以下文章