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读取大文件的方法的主要内容,如果未能解决你的问题,请参考以下文章

PHP读取大文件的几种方法介绍

从php中的csv文件读取大数据[重复]

请教一个问题,php如何读取mp3文件

创建ini文件,用PHP写入值

为啥使用 php 从一个非常大的 csv 文件中只读取 1000 条记录?

php 处理大文件方法 SplFileObject