PHPでは、ファイルの読み取り操作は非常に一般的なタスクであり、FGETS()関数は、ファイルから行ごとにデータ行の読み取り機能を提供します。この関数は、特に大きなテキストファイルの処理に適しており、各データの行を効果的に読み取ることができます。この記事では、FGETS()関数の使用方法を詳細に紹介し、読者がこの機能をより適切に習得できるように実用的なコード例を提供します。
FGETS()関数の基本的な構文は次のとおりです。
string fgets ( resource $handle, int $length );
その中で、パラメーターは次のように説明されています。
次のコンテンツを含む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.
場合によっては、各行の一部のみを読む必要がある場合があります。 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
ファイルコンテンツを直接出力することに加えて、各行を読み取るときにデータをさらに処理できます。たとえば、ファイル内の各行の文字数をカウントして、結果を配列に保存できます。これは、この関数を実装するコードの例です。
$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()の使用法をマスターすると、ファイルの読み取り操作がより効率的かつ便利になります。