file

関数の概要

PHPのfile関数は、指定したファイルの内容を一行ずつ読み込んで配列として返します。各配列の要素はファイルの1行に対応するため、簡単にファイルの行単位のデータを扱うことができます。大量のファイルを処理する場合や、行ごとに分けてデータを操作したいときに便利です。

パラメータの説明

  • filename(必須): 読み込むファイルのパスを文字列で指定します。
  • flags(省略可能): ファイルの読み込み方法を指定するビットフラグ。例として FILE_IGNORE_NEW_LINES(各行の改行コードを取り除く)、FILE_SKIP_EMPTY_LINES(空行を読み飛ばす)などがあります。
  • context(省略可能): ストリームコンテキストリソース。特殊なストリームの挙動を変更したいときに使用しますが、基本的には指定不要です。

戻り値

ファイルの各行を要素とする配列を返します。読み込みに失敗した場合は false を返します。

使用例

基本的な使い方

<?php
$lines = file('example.txt');
print_r($lines);
?>

これはexample.txtを1行ずつ読み込み、配列として出力します。改行も含まれています。

改行を取り除いて読み込む

<?php
$lines = file('example.txt', FILE_IGNORE_NEW_LINES);
print_r($lines);
?>

この例では、FILE_IGNORE_NEW_LINESフラグを使うことで、各行の末尾の改行コードを取り除いて読み込みます。後の処理がしやすくなります。

空行を除外して読み込む

<?php
$lines = file('example.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
print_r($lines);
?>

ファイルの空行を無視して、有効な行だけを配列にしたい場合に便利です。2つのフラグをビット演算子で組み合わせて指定しています。

関連する関数

  • file_get_contents – ファイル全体を文字列として読み込む
  • fopen, fgets, fclose – ファイルを1行ずつ読み込む方法を細かく制御できる
  • readfile – ファイルの内容を直接出力する

まとめ

PHPのfile関数は、ファイルの内容を簡単に一行ずつ配列に読み込むことができる便利な関数です。特に初めてのファイル操作や、行単位でデータを扱いたい場面に最適です。改行を除去するフラグや空行を飛ばすフラグを使い分けて、実務で使いやすいコードを書くことができます。より細かい制御が必要な場合は、他のファイル操作関数と組み合わせて使うと良いでしょう。