PHP

ファイル読み込み | 初心者でもわかるPHP入門

2021年8月1日

fgets関数で1行ずつ読み込む

fgets関数でファイルを扱う場合は、次の3つの関数を使いファイル操作を行います。

  • fopen関数:ファイルを開く
  • fgets関数:データを読み込む
  • fclose関数:ファイルを閉じる

fopen関数の第2引数には、ファイルを開くときにモードを指定します。主なモードは次のとおりです。

ファイルを開くときのモード説明
r読み込み専用
w書き出し専用
a追加書き出し

[fgets関数の使用例]

<?php

$filename = 'C:\tmp\sample.txt';

// ファイルを開く('r'は読み込みモードで開く)
$fp = fopen($filename, 'r') or die("ファイル読み込みエラー");

// ファイルを最後まで読み込む
while (!feof($fp)) {
    echo fgets($fp).'<br>';
}

// ファイルを閉じる
fclose($fp);

?>

[実行結果]

あいうえお
かきくけこ
さしすせそ

file_get_contents関数でファイル読み込み

file_get_contents関数で全文読み込み

file_get_contents関数を使えば、ファイルオープンからデータ読み込み、クローズまでを1つの関数で簡単に処理できます。

[file_get_contents関数の使用例]

<?php

$filename = 'C:\tmp\sample.txt';

// ファイル読み込み
echo file_get_contents($filename);

?>

[実行結果]

あいうえお かきくけこ さしすせそ

file_get_contents関数で簡単にファイルの全文を読み込めます。ただし 改行タグ<br>が入っていないと、改行コードだけではブラウザ上では改行されないので注意しましょう。

file_get_contents関数で1行ずつ読み込む

file_get_contents関数で読み込んだ全文を1行ずつ処理するには、explode関数を使用します。

[explodeで1行ずつ処理]

<?php

$filename = 'C:\tmp\sample.txt';

// ファイル読み込み
$content = file_get_contents($filename);

// 読み込んだデータを1行ずつ処理
$rows = explode("\n", $content);
foreach ($rows as $row) {
    echo $row.'<br>';
}

?>

[実行結果]

あいうえお
かきくけこ
さしすせそ

file関数で配列に格納

file関数を利用することで、ファイルの全文を配列に格納できます。

[file関数の使用例]

<?php

$filename = 'C:\tmp\sample.txt';

// ファイルを読み込み配列に格納
$lines = file($filename);

print_r($lines);

?>

[実行結果]

Array ( [0] => あいうえお [1] => かきくけこ [2] => さしすせそ )

helpful