file_put_contents

関数の概要

file_put_contents は、PHPで指定したファイルにデータを書き込むための便利な関数です。ファイルが存在しない場合は新しく作成され、既に存在する場合は上書きされます。この関数を使うことで、ファイル操作を簡単に実装でき、テキストデータやバイナリデータの保存に活用されます。

パラメータの説明

  • filename(必須):書き込み対象のファイルパスを文字列で指定します。
  • data(必須):ファイルに書き込むデータ。文字列、配列、あるいはストリームリソースを指定可能です。
  • flags(任意):書き込みモードを設定します。FILE_USE_INCLUDE_PATHFILE_APPENDなどのフラグを組み合わせられます。
  • context(任意):ストリームコンテキストリソースを指定して、詳細な入出力制御が可能です。

戻り値

成功すると、書き込まれたバイト数を整数で返します。失敗すると false を返すため、書き込みが正しく行われたかどうかを確認する際に利用します。

使用例

基本的な使い方

<?php
file_put_contents('example.txt', "こんにちは、PHPの世界!n");
echo "書き込み完了";
?>

この例では、カレントディレクトリに example.txt というファイルを新規作成し、指定した文字列を書き込みます。ファイルが既にあれば上書きされます。

ファイルに追記する方法

<?php
file_put_contents('example.txt', "2行目の内容n", FILE_APPEND);
?>

FILE_APPEND フラグを指定すると、既存のファイル内容に追記(追加)できます。ログファイルなどでよく使われる方法です。

配列のデータを書き込む

<?php
$data = ["りんご", "みかん", "ばなな"];
file_put_contents('fruits.txt', implode(", ", $data));
?>

配列データは直接書き込めないため、一旦文字列に変換してから渡します。ここでは implode でカンマ区切りの文字列にして保存しています。

バイナリデータの保存

<?php
$imageData = file_get_contents('image.jpg');
file_put_contents('copy_image.jpg', $imageData);
?>

バイナリデータ(画像など)を読み込んで別のファイルに保存する例です。テキストだけでなく、あらゆるデータの書き込みに対応しています。

関連する関数

  • fopen – ファイルを開く
  • fwrite – 開いたファイルに書き込む
  • file_get_contents – ファイルから内容を読み込む
  • unlink – ファイルを削除する

まとめ

file_put_contents はPHPでファイルにデータを書き込む際に非常に便利で使いやすい関数です。初心者でも簡単に利用でき、ファイルの新規作成や上書き、追記まで幅広い用途に対応しています。実務でもログ保存や設定ファイルの作成など、多様な場面で役立つため、ぜひ基本的な使い方をしっかり押さえておきましょう。