プログラミング 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);

PHPでファイルの書き込みを行う方法について説明いたしました。PHPの学習をされている方のお力になれれば幸いです。

自宅で現役エンジニアから学べる TechAcademy [テックアカデミー]

1人ではプログラミング学習が続かない方のための、パーソナルメンターがつく「オンラインブートキャンプ」です。
オンラインブートキャンプの特徴は下記の3つがあります。

1.スクールに通わなくても、自宅などでオンライン学習できる
2.わからないことはいつでもチャットでメンターに質問できる
3.パーソナルメンターがついてオリジナルサービスやオリジナルアプリの公開までサポート

自分のオリジナルサービスやアプリを開発しながらプログラミングを実践的に学んでいただき、
わからないことはいつでも現役エンジニアのメンターに相談することができます。

現在は、6つのコースがありいずれも最短4週間で完結します。

■提供中のコース
・Webアプリコースコース
・iPhoneアプリコース
・Androidアプリコース
・WordPressコース
・Webデザインコース
・アプリUI/UXデザインコース

詳細はこちらをご覧ください。

-プログラミング, PHP