現在の位置: ホーム> 最新記事一覧> php fgets()関数の詳細な説明:ファイルから行ごとにデータ行を読み取る方法

php fgets()関数の詳細な説明:ファイルから行ごとにデータ行を読み取る方法

M66 2025-06-19

php fgets()関数の概要

PHPでは、ファイルの読み取り操作は非常に一般的なタスクであり、FGETS()関数は、ファイルから行ごとにデータ行の読み取り機能を提供します。この関数は、特に大きなテキストファイルの処理に適しており、各データの行を効果的に読み取ることができます。この記事では、FGETS()関数の使用方法を詳細に紹介し、読者がこの機能をより適切に習得できるように実用的なコード例を提供します。

FGETS()関数の基本的な構文

FGETS()関数の基本的な構文は次のとおりです。

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

その中で、パラメーターは次のように説明されています。

  • $ハンドル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ファイルを開き、 $ハンドル変数に返されたファイルリソースを保存します。その後、しばらくループして、 FGETS()関数を使用して、ファイルのコンテンツを行ごとに読み取り、各データをページに出力します。最後に、 fclose()関数を使用してファイルを閉じます。

実行結果:

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

例コード2:読み取りバイト数を制限します

場合によっては、各行の一部のみを読む必要がある場合があります。 FGETS()関数$の長さの2番目の引数により、読み取りごとのバイト数を制限できます。次のサンプルコードは、各行の最初の10バイトを読み取る方法を示しています。

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

if ($handle) {
    while (($line = fgets($handle, 10)) !== false) {
        echo $line . "<br>";
    }
    fclose($handle);
} else {
    echo "ファイルを開くことができません";
}
    

このコードは、FGETS()関数の2番目のパラメーター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()関数を使用して、1行あたりの文字数を計算し、 $ resultアレイに保存します。最終出力配列コンテンツ:

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

要約します

FGETS()関数は、PHPで非常に便利なファイル処理機能であり、ファイルからデータ行ごとにデータを読むのに役立ちます。この関数を柔軟に使用することにより、大きなテキストファイルを簡単に処理し、実際のニーズに応じてファイルコンテンツを操作および処理できます。 FGETS()の使用法をマスターすると、ファイルの読み取り操作がより効率的かつ便利になります。