首页 > 编程语言 >php读取大文件的方法

php读取大文件的方法

时间:2023-02-01 13:04:02浏览次数:37  
标签:文件 读取 float echo file microtime php data

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”才可以。

 



标签:文件,读取,float,echo,file,microtime,php,data
From: https://blog.51cto.com/u_2820398/6031397

相关文章

  • php 3种常见设计模式
    1、工厂模式<?phpnamespaceFacebab;classFactory{staticfunctioncreateDatabase(){returnnewDatabase();}}$db=Facebab\Factory::createDatabas......
  • php类自动装载、链式操作、魔术方法
    1、自动装载实例目录下有3个文件:index.phpload.phptests文件夹tests文件夹里有test1.php<?phpnamespaceTests;classTest1{staticfunctiontest(){......
  • PHP读取流文件
    $filepath='http://www.vip.com/down';$fp=fopen($filepath,"r");Header("Content-type:application/octet-stream");Header("Ac......
  • PHP一个典型的闭包实例
    <?php//一个基本的购物车,包括一些已经添加的商品和每种商品的数量。//其中有一个方法用来计算购物车中所有商品的总价格,该方法使//用了一个closure作为回调函数。class......
  • php使用魔法函数和不使用魔法函数比较
    /***usemagic0.31868386268616s*notusemagic0.11876797676086s*/classTest{private$varstr="123";function__get($name){return$this->vars......
  • Ai JavaScript 把桌面下面 所有的png 图片导入到 ai里面的 脚本 获取某目录下所有文件
    vardoc=app.activeDocument;//创建一个目录varinput=newFolder("C:\\Users\\Administrator\\Desktop");//获取input目录下面的所有png图片得到一个数组对象vard......
  • 系统文件的权限
    目录​​Android系统的文件权限​​​​修改文件权限​​Android系统的文件权限先看下图分析:​​drwxrw-r--​​(1-3-3-3总共10位)第1位(文件类型):d(目录),-......
  • C#.NET 前端大文件上传
    ​ IE的自带下载功能中没有断点续传功能,要实现断点续传功能,需要用到HTTP协议中鲜为人知的几个响应头和请求头。 一. 两个必要响应头Accept-Ranges、ETag     ......
  • Java 创建一个快捷窗口 用于监控文件夹与打开文件夹
    样式代码结构全部代码importjavax.swing.*;importjava.awt.*;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.io.File;importjav......
  • 16-项目实战-上传文件-实战
    1.创建数据表classUserInfo(models.Model):"""用户信息"""name=models.CharField(verbose_name="姓名",max_length=32)age=models.IntegerField(ve......