広告 PHP

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

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