ファイルを開く・閉じる - fopen()、fclose()
当ページのリンクには広告が含まれています。
プログラミング言語PHPで、ファイルやURLを開く関数 fopen()、閉じる関数 fclose()を紹介します。
fopen関数
resource fopen ( string $filename , string $mode )
ファイル情報を配列で表示します。
引数 $filename 開くファイルを指定します。 $mode ファイルを開く際のモードを指定します。モードについては後述します。
返り値
ファイルポインタを返します。ファイルオープンに失敗した場合は falseを返します。
fclose関数
bool fclose ( resource $handle )
ファイルポインタを閉じます(クローズします)。
引数 $handle クローズするファイルポインタを指定します。
返り値
ファイルポインタのクローズが成功した場合は trueを、失敗した場合は falseを返します。
モード
ファイルを開く際のモード一覧表です。モードの「概要」「ファイルポインタの位置」「ファイルがない場合」についての挙動を紹介しています。
モード | 概要 | ファイルポインタの位置 | ファイルがない場合 |
---|---|---|---|
r | 読み込みのみオープン。 | 先頭 | エラー |
r+ | 読み込み/書き込みでオープン。 | 先頭 | エラー |
w | 書き込みのみでオープン。† | 先頭 | 作成 |
w+ | 読み込み/書き込みでオープン。† | 先頭 | 作成 |
a | 追加書き込みのみでオープン。 | 末尾 | 作成 |
a+ | 読み込み/書き込みでオープン。 | 末尾 | 作成 |
x | 読み込みのみでオープン。 | 先頭 | エラー |
x+ | 読み込み/書き込みでオープン。 | 先頭 | エラー |
c+ | 書き込みのみでオープン。†† | 先頭 | 作成 |
c+ | 読み込み/書き込みでオープン。†† | 先頭 | 作成 |
† ファイルが存在する場合はそのファイルサイズをゼロ(空)にします。
†† w/w+ と異なり、ファイルが存在する場合でもファイルをゼロ(空)にしませn。
サンプルコード - ファイルの読み込み
以下のテキストファイル(test.txt)を読み込んで、それらを出力するサンプルコードです。ファイルポインタの読み込みには fgets関数を使っています。
fopen ( ファイル名, "r" )
<?php // ファイルポインタをオープン $handle = fopen("test.txt", "r"); // ファイル内容を出力 while ($line = fgets($handle)) { echo $line; } // ファイルポインタをクローズ fclose($handle); ?>
実行結果です。
===== ===== ===== ===== ===== テキストファイルだよー ===== ===== ===== ===== =====
ファイル(test.txt)の内容が表示されます。
次はファイルへの書き込み方法をみていきます。
サンプルコード - ファイルの書き込み
存在しないファイルを作成し、テキストを書き込むサンプルコードです。ファイルの書き込みには fwrite関数を使います。
fopen ( ファイル名, "w" )
<?php // ファイルポインタをオープン $handle = fopen("tmp.txt", "w"); // ファイルへ書き込み fwrite($handle, "てすてす\n"); fwrite($handle, "書き込みテストだよー\n"); // ファイルポインタをクローズ fclose($handle); ?>
実行するとファイル「tmp.txt」が作成され、以下のようなテキストがファイルに書き込まれます。
てすてす 書き込みテストだよー