迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > PHP >

如何在 PHP 中逐行读取一个大文件

作者:迹忆客 最近更新:2023/03/26 浏览次数:

在本文中,我们将介绍在 PHP 中逐行读取一个大文件的方法。

  • 使用 fgets() 函数
  • 使用 file() 函数
  • 使用 stream_get_line() 函数

在 PHP 中使用 fgets() 函数逐行读取大文件

内置函数 fgets() 从一个打开的文件中读取一行。我们可以用这个函数来逐行读取一个大文件。使用这个函数的正确语法如下。

fgets($fileName, $lengthOfFile);

函数 fgets() 有两个参数。其详细参数如下

参数   说明
$fileName 强制 这是我们要逐行读取的文件
$lengthOfFile 可选 它讲述了要读取的文件的长度,它的默认值是 1024 字节。它的默认值是 1024 字节。

如果成功的话,该函数从用户指定的文件中返回一个 stringlengthOfFile -1。失败时返回 False

下面的程序显示了我们如何使用 fgets() 函数逐行读取一个大文件。我们将分别使用 fopen()fclose() 函数来打开和关闭一个文件。我们有一个名为 flowers.txt 的文本文件,其中包含了花的详细信息。

<?php 
if ($file = fopen("flowers.txt", "r")) {
    while(!feof($file)) {
        $line = fgets($file);
       echo ("$line");
    }
    fclose($file);
}   
?> 

我们使用 feof() 函数读取文件,直到最后。输出显示的是逐行读取的文件内容。

输出:

fgets 函数在 PHP 中逐行读取一个大文件


在 PHP 中使用 file() 函数逐行读取一个大文件

在 PHP 中,我们还可以使用 file() 函数逐行读取文件。file() 函数将一个文件逐行读取到一个数组中。使用该函数的正确语法如下。

file($fileName, $flags, $context)

函数 file() 接受三个参数。其详细参数如下

参数   说明
$fileName 强制 它是我们的文件存放的路径
$flags 可选 它讲述了我们可以使用的常量作为这个函数的标志。
$context 可选 就是使用 stream_context_create()函数创建的资源

使用 file() 函数读取文件的程序如下。

<?php 
foreach(file('flowers.txt') as $line) {
   echo $line. "\n";
} 
?> 

在 PHP 中使用 stream_get_line() 函数逐行读取大文件

我们也可以使用 stream_get_line() 函数逐行读取文件。这个函数可以读取一个文件,直到一个定界符。正确使用该函数的语法如下。

stream_get_line($handle, $length, $ending)

函数 stream_get_line() 接受三个参数。它的详细参数如下

参数   说明
$handle 强制 它是存储我们文件的路径
$length 强制 它告诉我们要读取的文件的长度
$ending 强制 它是一个告诉定界符的字符串

使用 stream_get_line() 函数读取文件的程序如下。

<?php 
$file = fopen("flowers.txt", "r+");
while ($line = stream_get_line($file, 1024 * 1024, ".")) {
  echo $line;
}
fclose($file);
?> 

输出:

stream_get_line(在 PHP 中逐行读取一个大文件的函数

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

如何在 PHP 中获取时间差的分钟数

发布时间:2023/03/29 浏览次数:183 分类:PHP

本文介绍了如何在 PHP 中获取时间差的分钟数,包括 date_diff()函数和数学公式。它包括 date_diff()函数和数学公式。

PHP 中的重定向

发布时间:2023/03/29 浏览次数:136 分类:PHP

本教程演示了如何将用户从页面重定向到 PHP 中的其他页面

PHP 分页

发布时间:2023/03/29 浏览次数:66 分类:PHP

本教程介绍如何在 PHP 中对数据库行进行分页

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便