(PHP 5, PHP 7, PHP 8)
file_put_contents — Escreve dados em um arquivo
$filename
,$data
,$flags
= 0,$context
= null
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.
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çã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().
Esta função retorna a quantidade de bytes que foi escrita no arquivo ou
false
em caso de falha.
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.
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);
?>
Nota: Esta função é compatível com dados binários.
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.