ファイル内容を1行ずつ配列に格納してくれる「file」関数の書式は、
比較的簡単な書式で、扱いやすい関数です。
「file」関数の書式
file(string $filename, int $flags = 0, resource $context = ?): array
file(必須, 省略可, 省略可): 返り値(配列)
file(ファイルパス, フラグ指定, コンテキスト): 返り値(配列)
file(ファイルパス [ , フラグ(省略可)] );
file(ファイルパス): 返り値(配列)
パラメータ
第二引数の「フラグ」以降のパラメータは、「省略」する事が可能。
1つのパラメータに複数の値を指定する場合は、「|」で区切る。
サンプル:
file($filename, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
「改行文字」「空の行」を含まないように指定できるので、
第二引数「フラグ」は、良く指定する項目だと思います。
データファイルなどを扱うのに便利。
「FILE_SKIP_EMPTY_LINES」は、
「改行文字」が行の最後にあると「空の行」と認識してくれないので、
最初に「改行文字」を含めない「FILE_IGNORE_NEW_LINES」を指定する必要があります。
そのため、
file($filename, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
という2つのフラグを同時に指定する必要がある。
パラメータの種類
フラグの種類 | 説明 |
FILE_USE_INCLUDE_PATH |
ファイルを、インクルードディレクトリも含めて検索する。
|
FILE_IGNORE_NEW_LINES |
配列の各要素の最後に「改行文字(\n)」を含めない。
|
FILE_SKIP_EMPTY_LINES |
「空の行」は、配列に含めない。
|
「file」関数のサンプルコード
file(ファイルパス [, フラグ, コンテキスト(省略可)] );
//ファイルを変数に格納
$filename = 'ファイル名.txt';
//ファイルを配列に格納し、さらに変数に格納
$変数名 = file($filename);
//配列を出力
print_r($変数名);
出力結果:
Array ( [0] => 1行目の内容 [1] => 2行目の内容 [2] => 3行目の内容 )
// ファイルを変数に格納
$filename = 'memo.txt';
// ファイルを配列に格納し、さらに変数に格納
$lines = file($filename);
//foreachでファイルの配列をループ処理
foreach ($lines as $line) :
//配列の要素を1行ずつ
endforeach;
Back