データをファイルに書き込む

# file_put_contents

(PHP 5, PHP 7, PHP 8)

file_put_contents — データをファイルに書き込む

### 説明

function file_put_contents(
string `$filename`,
mixed `$data`,
int `$flags` = 0,
?resource `$context` = `null`
): int|false

この関数は、fopen()、fwrite()、 fclose() を続けてコールしてデータをファイルに書き込むのと等価です。

`filename` が存在しない場合はファイルを作成します。 存在する場合はそのファイルを上書きします。ただし `FILE_APPEND` フラグが設定されている場合は別です。

### パラメータ

`filename`

  データを書き込むファイルへのパス。

`data`

  書き込むデータ。string, array もしくは stream リソースのいずれかを指定可能です。

  `data` が stream リソースの場合は、 ストリームのバッファに残っている内容が指定したファイルにコピーされます。 これは、stream_copy_to_stream() の挙動と似ています。

  `data` に一次元の配列を指定することもできます。この場合は `file_put_contents($filename, implode('', $array))` と同じ意味になります。

`flags`

  `flags` の値は、以下のフラグを組み合わせたものとなります 組み合わせる際には、論理 OR (`|`) 演算子で連結します。

  使用できるフラグ
  フラグ | 説明
  --- | ---
  `FILE_USE_INCLUDE_PATH` | `filename` をインクルードディレクトリから探します。 詳細な情報は include_path を参照ください。
  `FILE_APPEND` | `filename` がすでに存在する場合に、 データをファイルに上書きするのではなく追記します。
  `LOCK_EX` | 書き込み処理中に、ファイルに対する排他ロックを確保します。 つまり、fopen() の呼び出しから fwrite() の呼び出しまでの間に flock() の呼び出しが発生するということです。 これは、モード "x" で fopen() を呼び出すことと同等ではありません。

`context`

  stream_context_create() で作成したコンテキストリソース。

### 戻り値

この関数はファイルに書き込まれたバイト数を返します。 あるいは失敗した場合には `false` を返します。

警告

この関数は論理値 `false` を返す可能性がありますが、`false` として評価される値を返す可能性もあります。 詳細については 論理値の セクションを参照してください。この関数の返り値を調べるには ===演算子 を 使用してください。

### 例

例1 シンプルな使用例

    <?php
    $file = 'people.txt';
    // ファイルをオープンして既存のコンテンツを取得します
    $current = file_get_contents($file);
    // 新しい人物をファイルに追加します
    $current .= "John Smith\n";
    // 結果をファイルに書き出します
    file_put_contents($file, $current);
    ?>

例2 フラグの使用

    <?php
    $file = 'people.txt';
    // 新しい人物をファイルに追加します
    $person = "John Smith\n";
    // 中身をファイルに書き出します。
    // FILE_APPEND フラグはファイルの最後に追記することを表し、
    // LOCK_EX フラグは他の人が同時にファイルに書き込めないことを表します。
    file_put_contents($file, $person, FILE_APPEND | LOCK_EX);
    ?>

### 注意

> 注意: この関数はバイナリデータに対応しています。

ヒント

fopen wrappers が有効の場合、この関数のファイル名として URL を使用することができます。ファイル名の指定方法に関する詳細は fopen() を参照ください。 サポートするプロトコル/ラッパー には、さまざまなラッパーの機能やその使用法、 提供される定義済み変数などの情報がまとめられています。

### 参考

- fopen() - ファイルまたは URL をオープンする
- fwrite() - バイナリセーフなファイル書き込み処理
- file_get_contents() - ファイルの内容を全て文字列に読み込む
- stream_context_create() - ストリームコンテキストを作成する

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open