当前位置: 首页> 最新文章列表> PHP fgets() 函数详解:如何从文件中逐行读取数据

PHP fgets() 函数详解:如何从文件中逐行读取数据

M66 2025-06-19

PHP fgets() 函数概述

在PHP中,文件读取操作是非常常见的任务,而fgets()函数提供了从文件中逐行读取数据的功能。这个函数特别适用于处理大型文本文件,能够有效地读取每一行数据。本文将详细介绍fgets()函数的使用方法,并提供实际的代码示例,帮助读者更好地掌握此函数。

fgets() 函数的基本语法

fgets()函数的基本语法如下:

string fgets ( resource $handle, int $length );

其中,参数解释如下:

  • $handle:通过fopen()函数打开的文件资源。
  • $length:可选参数,指定每次读取的最大字节数,默认值为1024字节。

示例代码1:基本用法

假设我们有一个名为example.txt的文本文件,内容如下:


Lorem ipsum dolor sit amet,
consectetur adipiscing elit,
sed do eiusmod tempor incididunt
ut labore et dolore magna aliqua.
    

我们可以使用以下代码逐行读取文件内容并输出:


$handle = fopen("example.txt", "r");

if ($handle) {
    while (($line = fgets($handle)) !== false) {
        echo $line . "<br>";
    }
    fclose($handle);
} else {
    echo "无法打开文件";
}
    

这段代码首先使用fopen()函数打开example.txt文件,并将返回的文件资源保存在$handle变量中。然后在while循环中,使用fgets()函数逐行读取文件内容,并将每行数据输出到页面上。最后,使用fclose()函数关闭文件。

执行结果:


Lorem ipsum dolor sit amet,
consectetur adipiscing elit,
sed do eiusmod tempor incididunt
ut labore et dolore magna aliqua.
    

示例代码2:限制读取的字节数

在某些情况下,可能只需要读取每行的部分内容。fgets()函数的第二个参数$length允许我们限制每次读取的字节数。下面的示例代码演示了如何读取每行的前10个字节:


$handle = fopen("example.txt", "r");

if ($handle) {
    while (($line = fgets($handle, 10)) !== false) {
        echo $line . "<br>";
    }
    fclose($handle);
} else {
    echo "无法打开文件";
}
    

这段代码在fgets()函数中指定了第二个参数10,表示每次读取10个字节。执行后的结果如下:


Lorem ipsu
consectetu
sed do
ut labore
    

示例代码3:逐行读取并处理数据

除了直接输出文件内容,我们还可以在读取每一行时对数据进行进一步处理。例如,我们可以统计文件中每一行的字符数,并将结果存储在一个数组中。以下是实现该功能的代码示例:


$handle = fopen("example.txt", "r");
$result = [];

if ($handle) {
    while (($line = fgets($handle)) !== false) {
        $lineLength = strlen($line);
        $result[] = $lineLength;
    }
    fclose($handle);
} else {
    echo "无法打开文件";
}

print_r($result);
    

在这个示例中,我们使用strlen()函数计算每行的字符数,并将其保存在$result数组中。最终输出数组内容:


Array
(
    [0] => 28
    [1] => 28
    [2] => 30
    [3] => 24
)
    

总结

fgets()函数是PHP中非常有用的文件处理函数,可以帮助我们从文件中逐行读取数据。通过灵活运用此函数,我们可以轻松处理大型文本文件,并根据实际需求对文件内容进行操作和处理。掌握fgets()的用法将使文件读取操作更加高效和便捷。