目次
ファイル読み込み
ファイルの準備
まずは読み込むためのファイルを準備します。今回は次の5行の内容をテキストエディタで入力して、PHPコードの実行ディレクトリに格納しました。
ファイルの内容
fox
mouse
rabbit
cat
ファイルを1行ずつ読み込む方法
ファイルから1行ずつ読み込む手順を示します。ファイルは「fopen関数」で開きます。次に「fgets関数」でファイルの内容を一行ずつ読み込んでいきます。最後に「fclose関数」でファイルを閉じます。

ファイルを開く
ファイルを開くには「fopen関数」を使って、次のように書きます。
引数として「ファイル名」「モード」を指定します。引数で指定されたファイルを指定されたモードで開きます。fopen関数はファイルポインタを返します。ファイルポインタはテキストエディタのカーソルのようなものです。
ファイルを開くモードの一覧表を示します。
モード | 概要 | ファイルポインタ位置 | ファイルがない場合 |
---|---|---|---|
r | 読み込み | 先頭 | FALSEを返す |
r+ | 読み込み/書き込み | 先頭 | FALSEを返す |
w | 書き込み | 先頭 | 作成する |
w+ | 読み込み/書き込み | 先頭 | 作成する |
a | 追加書き込み | 末尾 | 作成する |
a+ | 読み込み/追加書き込み | 末尾 | 作成する |
1行読み込む
ファイルから1行読み込むには「fgets関数」を使って、次のように書きます。
fopen関数で得られたファイルポインタを引数として渡します。返り値はファイルから読み込んだ1行の文字列になります。
ファイルを閉じる
ファイルを閉じるときには、「fclose関数」を使って、次のように書きます。
fopen関数で得られたファイルポインタを引数として渡します。
ファイルの内容を全て読み込む方法
ファイルの内容を全て読み込むときには、「file_get_contents関数」を使って、次のように書きます。
引数で渡されたファイルの内容全てを読み込み、文字列として返します。
ファイル読み込みのサンプルコード
「fgets関数」を使ったサンプルコードとその実行結果を示します。2行目で「data.txt」というファイルを開いて、ファイルポインタを取得しています。ファイルの内容については、「ファイルの準備」で扱いました。while構文では、fgetsでファイルの内容を1行ずつ読み込み、echoで読み込んだ内容を出力しています。実行結果から正しく処理が行われていることが分かります。
コード
1 2 3 4 5 6 | <?php $file = fopen("data.txt", "r"); while ($line = fgets($file)) { echo $line; } ?> |
実行結果
dog
fox
mouse
rabbit
cat
「file_get_contents関数」を使ったサンプルコードとその実行結果を示します。2行目でファイルの内容全てを読み込み、3行目で読み込んだ内容を出力しています。実行結果が「open1.php」と同じであり、正しく処理が行われていることが分かります。
コード
1 2 3 4 | <?php $data = file_get_contents("data.txt"); echo $data; ?> |
実行結果
dog
fox
mouse
rabbit
cat
ファイル書き出し
ファイルへ書き込む手順は、fgets関数を使った読み込みとほぼ同じです。
- ファイルを開く(fopen)
- 書き込む(fwrite)
- ファイルを閉じる(fclose)
ファイルに書き込むには「fwrite関数」を使って、次のように書きます。
fopen関数で得られたファイルポインタを引数として渡します。
ファイル書き出しのサンプルコード
「fwrite関数」を使ったサンプルコードとその実行結果を示します。3行目〜7行目の「fwrite関数」でファイルへの書き込みを行なっています。このときに、「fwrite関数」の返り値を「ret」という配列に格納しておいて、9行目の「var_dump関数」で型と値を出力します。実行結果から、「fwrite関数」の返り値は、ファイルへ書き込まれた文字列のバイト数であることが分かります。また、catコマンで「output.txt」の内容を確認すると、正しく処理が実行されていることが分かります。
コード
1 2 3 4 5 6 7 8 9 10 | <?PHP $fp = fopen("output.txt","w"); $ret[] = fwrite($fp,"dog\n"); $ret[] = fwrite($fp,"fox\n"); $ret[] = fwrite($fp,"mouse\n"); $ret[] = fwrite($fp,"rabbit\n"); $ret[] = fwrite($fp,"cat\n"); fclose($fp); var_dump($ret); ?> |
実行結果
array(5) {
[0]=>
int(4)
[1]=>
int(4)
[2]=>
int(6)
[3]=>
int(7)
[4]=>
int(4)
}
ファイルの内容
dog
fox
mouse
rabbit
cat
まとめ
今回はPHPの「ファイル操作」について紹介しました!次回は「フォーム」について扱う予定です!!
コメントを残す