プログラミング PHP

【PHP入門】ファイル読み込み

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);
?>

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

[file関数の使用例]

<?php
 $filename = 'C:\tmp\sample.txt';
 // ファイルを読み込み配列に格納
 $lines = file($filename);
 print_r($lines);
?>

[実行結果]

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

PHPでのファイル読み込みについて説明いたしました。PHPを学習されている方のお力になれれば幸いです。

自宅で現役エンジニアから学べる TechAcademy [テックアカデミー]

1人ではプログラミング学習が続かない方のための、パーソナルメンターがつく「オンラインブートキャンプ」です。
オンラインブートキャンプの特徴は下記の3つがあります。

1.スクールに通わなくても、自宅などでオンライン学習できる
2.わからないことはいつでもチャットでメンターに質問できる
3.パーソナルメンターがついてオリジナルサービスやオリジナルアプリの公開までサポート

自分のオリジナルサービスやアプリを開発しながらプログラミングを実践的に学んでいただき、
わからないことはいつでも現役エンジニアのメンターに相談することができます。

現在は、6つのコースがありいずれも最短4週間で完結します。

■提供中のコース
・Webアプリコースコース
・iPhoneアプリコース
・Androidアプリコース
・WordPressコース
・Webデザインコース
・アプリUI/UXデザインコース

詳細はこちらをご覧ください。

-プログラミング, PHP