file_put_contents

Write a string to a file

&reftitle.description; `int` `file_put_contents` `string` `filename` `mixed` `data` `int` `flags` 0 `resource` `context`

This function is identical to calling `fopen`, `fwrite` and `fclose` successively to write data to a file.

If `filename` does not exist, the file is created. Otherwise, the existing file is overwritten, unless the `FILE_APPEND` flag is set.

&reftitle.parameters;

`filename`

- Path to the file where to write the data.

`data`

- The data to write. Can be either a `string`, an `array` or a `stream` resource.

  If `data` is a `stream` resource, the remaining buffer of that stream will be copied to the specified file. This is similar with using `stream_copy_to_stream`.

  You can also specify the `data` parameter as a single dimension array. This is equivalent to `file_put_contents($filename, implode('', $array))`.

`flags`

- The value of `flags` can be any combination of the following flags, joined with the binary OR (`|`) operator.

  ## Available flags

  Flag | Description
  `FILE_USE_INCLUDE_PATH` | Search for `filename` in the include directory. See include_path for more information.
  `FILE_APPEND` | If file `filename` already exists, append the data to the file instead of overwriting it.
  `LOCK_EX` | Acquire an exclusive lock on the file while proceeding to the writing.

`context`

- A valid context resource created with `stream_context_create`.

&reftitle.returnvalues;

This function returns the number of bytes that were written to the file, or &false; on failure.

&return.falseproblem;
&reftitle.examples;

### Simple usage example

    <?php
    $file = 'people.txt';
    // Open the file to get existing content
    $current = file_get_contents($file);
    // Append a new person to the file
    $current .= "John Smith\n";
    // Write the contents back to the file
    file_put_contents($file, $current);
    ?>

### Using flags

    <?php
    $file = 'people.txt';
    // The new person to add to the file
    $person = "John Smith\n";
    // Write the contents to the file,
    // using the FILE_APPEND flag to append the content to the end of the file
    // and the LOCK_EX flag to prevent anyone else writing to the file at the same time
    file_put_contents($file, $person, FILE_APPEND | LOCK_EX);
    ?>

&reftitle.changelog;

&Version; | &Description;
5.0.0 | Added context support
5.1.0 | Added support for `LOCK_EX` and the ability to pass a stream resource to the `data` parameter

&reftitle.notes; ¬e.bin-safe; &tip.fopen-wrapper;
&reftitle.seealso;

- `fopen`
- `fwrite`
- `file_get_contents`
- `stream_context_create`