PHPでファイルに文字列を書き込む「file_put_contents()」
文字列をファイルに書き込む方法:file_put_contents()
PHPでファイルに文字列を書き込むには「file_put_contents()」の関数で書き込みできます。
ファイルに書き込むには、ファイルを開く関数「fopen()」、ファイルに書き込み関数「fwrite()」、ファイルを閉じる関数「 fclose()」 を使わずにこの関数だけで処理ができるので簡単です
書式 : file_put_contents(ファイル名, 書き込みするデータ [, オプションフラグ [, コンテキスト]])
オプションフラグ
file_put_contents()には3つオプションがあります。また、複数のオプションを使う場合は「|」演算子を使ってオプションを設定します
- FILE_USE_INCLUDE_PATH : ファイルをインクルードパスから参照します。
- FILE_APPEND : ファイルに追記します。
- LOCK_EX : 書き込み中にファイルをロックします。
返り値
ファイルに書き込むまれたバイト数をint型で返します。 書き込みに失敗した場合には、falseを返します。
ファイルに書き込み
指定した文字列「ファイル書き込みテスト」を「test.txt」ファイルに書き込むサンプルです。
<?php $file = "test.txt"; $string = "ファイル書き込みテスト\n"; file_put_contents($file, $string); ?>
ファイルに追記
上記でも使用した文字列を「test.txt」に追記で書き込むサンプルです。ファイルに追記を行う場合は「FILE_APPEND」のオプションを使用します
<?php $file = "test.txt"; $string = "ファイル書き込みテスト\n"; file_put_contents($file, $string, FILE_APPEND); ?> // 文字列の追記を行う前 $ cat test.txt Hello World! // 文字列の追記を行う後 $ cat test.txt Hello World! ファイル書き込みテスト
ファイルを排他的ロックして、追記する
ファイルを排他的ロックして、他のユーザーから書き込みをできない状態で、指定した文字列を追記します。その場合は「FILE_APPEND | LOCK_EX」のオプションを使用します。オプションを2個しようするので「|」を使用して2つのオプションを設定します
<?php $file = "test.txt"; $string = "ファイル書き込みテスト\n"; file_put_contents($file, $string, FILE_APPEND | LOCK_EX); ?>
返り値を利用して、ファイルの書込み成功・失敗を判断する
file_put_contentsの返り値では、ファイルに書き込むまれたバイト数をint型で返すので、ファイルに書き込んだバイト数が「0」なら失敗と判断して、「0」でなけらば成功として判断する事ができます
<?php $file = "test.txt"; $string = "ファイル書き込みテスト\n"; $result = file_put_contents($file, $string, FILE_APPEND | LOCK_EX); echo $result; ?> // 実行結果 34 // 34バイトの文字列が書き込まれと返ってくるので、それで成功失敗の判断をします <?php $file = "test.txt"; $string = "ファイル書き込みテスト\n"; $result = file_put_contents($file, $string, FILE_APPEND | LOCK_EX); if ( $result === 0 ) { echo "書き込み失敗\n"; } else { echo "書き込み成功:" . $result . " Byteの文字列の書込みをおこないました\n"; } ?>
ディスカッション
コメント一覧
まだ、コメントがありません