PHP

【PHP】ファイル書き込み(上書き・追記)

2021年8月3日

PHPでファイルの書き込みを行う方法

PHPでファイルの書き込みを行うには「fputs()」関数と使用する方法と「file_put_contents()」関数を使用する方法があります。

それでは、fputs関数とfile_put_contents関数の使い方を説明していきます。

fputs関数でファイルの書き込みを行う

「fputs()」関数でファイルの書き込みを行う場合は、まず「fopen()」関数で対象のファイルを指定します。このときオプションが「w」であれば書き出しモードとなり、ファイルが存在しなければ新規にファイルを作成します。(ファイルがあれば上書きする)

そして「fputs()」関数でファイルに書き込みをおこなった後、「fclose()」関数でオープンしたファイルを閉じます。

[ファイル新規作成 または 上書きの例]

<?php

$filename = 'C:\tmp\sample1.txt';

// ファイルを開く('w'は書き込みモード)
$fp = fopen($filename, 'w');

// ファイルに書き込む
$data = "あいうえお\n";
fputs($fp, $data);

// ファイルを閉じる
fclose($fp);

?>

既ファイルにデータを追記する場合は「fopen()」関数のオプションに「a」を指定します。「a」を指定することで追記モードとなり、ファイルにデータを追記します。(ファイルが存在しない場合は新規にファイルを作成する)

[ファイルに追記する場合の例]

<?php

$filename = 'C:\tmp\sample1.txt';

// ファイルを開く('a'は追記モード)
$fp = fopen($filename, 'a');

// ファイルに書き込む
$data = "かきくけこ\n";
fputs($fp, $data);

// ファイルを閉じる
fclose($fp);

?>

file_put_contents関数でファイルの書き込みを行う

「file_put_contents()」関数を使うと、ファイルのopenやcloseを指定しなくても、簡単にファイルに書き込めます。

[ファイル新規作成 または 上書きの例]

<?php

$filename = 'C:\tmp\sample2.txt';

// ファイルに書き込む内容
$data = "あいうえお\n";

// ファイルに書き込む
file_put_contents($filename, $data);

?>

既ファイルにデータを追記する場合は「file_put_contents()」関数の引数に「FILE_APPEND」を指定します。(ファイルが存在しない場合は新規にファイルを作成する)

[ファイルに追記する場合の例]

<?php

$filename = 'C:\tmp\sample2.txt';

// ファイルに追記する内容
$data = "かきくけこ\n";

// ファイルに書き込む(FILE_APPENDフラグはファイルの最後に追記する)
file_put_contents($filename, $data, FILE_APPEND);

?>

また書き込み処理中に、ファイルに対する排他ロックを確保する場合は、次のように「LOCK_EX」を指定します。

file_put_contents($filename, $data, FILE_APPEND | LOCK_EX);

helpful