テキストファイルの入出力
PHP 8.2.0
PHPのファイル周りの関数
ファイルやディレクトリの操作に関しては、Linuxや Windowsのコマンドに呼応する PHP関数が多数提供されている。名前や使い方に類似点が多い。一覧は PHPマニュアルのディレクトリ関数、ファイルシステム関数 を参照のこと。
Linuxコマンドとの対応例
以下の例では、カレントディレクトリの表示と移動を行う。
テキストをファイルに一括して書き出す
file_put_contents( )
ファイルパスは相対パス、絶対パスいずれも指定できる。相対パスは PHPコマンドを実行したディレクトリがカレントディレクトリになる。
テキストファイルを一括して読み込む
file_get_contents( )
テキストファイルを読み込み配列に格納する
file( )
改行コードで区切った1行を1レコードとし、それぞれを配列に格納する。オプション FILE_IGNORE_NEW_LINESは、改行コードをレコードに含まない、FILE_SKIP_EMPTY_LINESは、空行を読み飛ばす指定である。
ファイルをオープンしてテキストを書き出す
fwrite( )
指定した文字列を順番にファイルに書き込む。
ファイルを読み込む前にファイルをオープンし、読み終わったらファイルをクローズする。オープン関数(fopen)の "w" オプションはファイルがあれば上書きする。"a" オプションはファイルがあれば最後に追加していく。いずれもファイルがなければ新規作成する。
この例では、出力の文字列は改行コードで区切っている。こうすることで、後述の fgets関数でファイルを読み込むとき、それぞれを1レコードとして読むことができる。
ファイルをオープンしてテキストを読み込む
fgets( )
改行コードで区切られた文字列を1レコードとして繰り返し読み込む。レコードがなくなると falseが返る。
ファイルの読み込み前後で、ファイルのオープン、クローズを行う。オープン関数(fopen)のオプションは "r" を指定する。