今日の人気記事

  1. 配列を文字列に変換する - implode()
  2. 文字列をファイルに書き込む - file_put_contents()
  3. ヒアドキュメント
  4. 論理値 - boolean
  5. OS情報を取得 - php_uname()

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

てすてす
書き込みテストだよー

ファイル の人気記事

  1. ファイルから1行ずつ読み込む - fgets()
  2. ファイル名を変更 - ファイルを移動 - rename()
  3. 文字列にファイルを書き込む - fwrite()、fputs()
  4. 親ディレクトリのパスを表示 - dirname()
  5. ディレクトリを作成 - mkdir()
  6. 文字列をファイルに書き込む - file_put_contents()
  7. ユニークなファイル名の一時ファイルを作成 - tempnam()
  8. 相対パスから絶対パスを取得 - realpath()
  9. バイナリセーフにファイルを読み込む - fread()

関連記事(一部広告含む)