ファイルを開く・閉じる - 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」が作成され、以下のようなテキストがファイルに書き込まれます。
てすてす 書き込みテストだよー