當前位置: 首頁> 最新文章列表> 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()的用法將使文件讀取操作更加高效和便捷。