ファイルを開く、読み書き、閉じる

PHPにおけるファイル処理は、外部ファイル(テキストファイルやCSVファイルなど)を読み書きするための基本的かつ重要な機能です。以下に「ファイルを開く」「ファイルの読み書き」「ファイルを閉じる」までの一連の流れを詳しく説明します。


1. ファイルを開く(fopen()関数)

PHPでは、fopen()関数を使ってファイルを開きます。書式は以下の通りです:

php
$ファイルポインタ = fopen("ファイル名", "モード");

主なモード

モード 説明
'r' 読み込み専用で開く(ファイルが存在している必要あり)
'w' 書き込み専用で開く(ファイルが存在しない場合は新規作成、存在する場合は内容を削除)
'a' 追記モードで開く(ファイルが存在しない場合は新規作成)
'r+' 読み書き両用で開く(ファイルが存在している必要あり)
'w+' 読み書き両用で開く(内容は削除される)
'a+' 読み書き両用で開く(内容は保持され、追記される)

php
$fp = fopen("example.txt", "r"); if (!$fp) { echo "ファイルを開けませんでした。"; }

2. ファイルの読み書き

ファイルを読む関数

  • fgets():1行ずつ読み取る

  • fread():指定したバイト数を読み取る

  • file_get_contents():ファイル全体を文字列として読み取る(簡易)

fgets()の例

php
$fp = fopen("example.txt", "r"); while ($line = fgets($fp)) { echo $line; } fclose($fp);

ファイルに書く関数

  • fwrite():文字列を書き込む

  • file_put_contents():簡単に一括書き込みする(内部でfopen()などを自動実行)

fwrite()の例

php
$fp = fopen("example.txt", "w"); fwrite($fp, "これはテストです。\n"); fclose($fp);

3. ファイルを閉じる(fclose()関数)

ファイル操作が終了したら、fclose()関数を使ってファイルを閉じます。これにより、メモリの無駄遣いを防ぎ、データの整合性も保たれます。

php
fclose($fp);

補足:ファイル存在確認とエラー処理

ファイル操作の前には、file_exists()でファイルの存在確認を行うと安全です。また、fopen()の返り値がfalseであるかどうかをチェックしてエラー処理を行うことが重要です。

php
if (file_exists("example.txt")) { $fp = fopen("example.txt", "r"); if ($fp) { // 読み取り処理 fclose($fp); } else { echo "ファイルを開けません。"; } } else { echo "ファイルが存在しません。"; }

生成日:2025/05/03