file_put_contents
(PHP 5, PHP 7, PHP 8)
file_put_contents — Escreve dados em um arquivo
Descrição
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.
AvisoEsta 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.
DicaUma URL pode ser usada como um
nome de arquivo com esta função se os wrappers fopen estiverem habilitados.
Consulte a função fopen() para mais detalhes sobre como especificar
o nome do arquivo. Consulte os Protocolos e Wrappers suportados para obter links para informações
sobre as capacidades de cada wrapper, notas de uso
e informações sobre quaisquer variáveis predefinidas que eles possam
fornecer.