Escreve dados em um arquivo

# file_put_contents

(PHP 5, PHP 7, PHP 8)

file_put_contents — Escreve dados em um arquivo

### Descrição

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

Esta função é idêntica a chamar fopen(), fwrite() e fclose() sucessivamente para escrever dados em um arquivo.

Se o arquivo informado em `filename` não existir, o arquivo é criado. Do contrário, o arquivo existente é sobrescrito, a não ser que a opção `FILE_APPEND` seja definida.

### Parâmetros

`filename`

  O caminho para o arquivo onde os dados serão escritos.

`data`

  Os dados a serem escritos. Pode ser uma string, um array ou um recurso stream.

  Se `data` for um recurso stream, o buffer restante desse fluxo será copiado para o arquivo especificado, semelhante à utilização de stream_copy_to_stream().

  Você também pode especificar o parâmetro `data` como um array unidimensional. Isso é equivalente a `file_put_contents($filename, implode('', $array))`.

`flags`

  O valor de `flags` pode ser qualquer combinação das seguintes opções, adicionadas com o operador binário OR (`|`).

  Opções disponíveis
  Opção | Descrição
  --- | ---
  `FILE_USE_INCLUDE_PATH` | Procura o arquivo `filename` nos diretórios de include. Consulte include_path para mais informações.
  `FILE_APPEND` | Se o arquivo `filename` já existir, acrescenta os dados ao arquivo ao invés de sobrescrevê-lo.
  `LOCK_EX` | Adquire uma trava exclusiva no arquivo ao prosseguir para a escrita. Em outras palavras, uma chamada a flock() acontece entre a chamada fopen() e a chamada fwrite(). Isso não é idêntico à uma chamada fopen() com modo "x".

`context`

  Um recurso de contexto válido criado com stream_context_create().

### Valor Retornado

Esta função retorna a quantidade de bytes que foi escrita no arquivo ou `false` em caso de falha.

Aviso

Esta função pode retornar o valor booleano `false`, mas também pode retornar um valor não booleano que pode ser avaliado como `false`. Leia a seção sobre Booleanos para mais informações. Use o operador === para testar o valor retornado por esta função.

### Exemplos

Exemplo #1 Exemplo de uso simples

    <?php
    $file = 'people.txt';
    // Abre o arquivo para obter o conteúdo existente
    $current = file_get_contents($file);
    // Acrescenta a nova pessoa no arquivo
    $current .= "John Smith\n";
    // Escreve o conteúdo de volta no arquivo
    file_put_contents($file, $current);
    ?>

Exemplo #2 Usando flags

    <?php
    $file = 'people.txt';
    // A nova pessoa para adicionar no arquivo
    $person = "John Smith\n";
    // Escreve o conteúdo no arquivo,
    // usando a flag FILE_APPEND para acrescentar o conteúdo no fim do arquivo
    // e a flag LOCK_EX para evitar que outra pessoa escreva no arquivo ao mesmo tempo
    file_put_contents($file, $person, FILE_APPEND | LOCK_EX);
    ?>

### Notas

> Nota: Esta função é compatível com dados binários.

Dica

Uma URL pode ser usada como um nome de arquivo com esta função se os empacotadores fopen estiverem habilitados. Consulte a função fopen() para mais detalhes sobre como especificar o nome do arquivo. Consulte os Protocolos e empacotadores suportados para obter links para informações sobre as capacidades de cada empacotador, notas de uso e informações sobre quaisquer variáveis predefinidas que eles possam fornecer.

### Veja Também

- fopen() - Abre um arquivo ou URL
- fwrite() - Escrita binary-safe em arquivos
- file_get_contents() - Lê todo o conteúdo de um arquivo para uma string
- stream_context_create() - Cria um contexto de fluxo

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