O PHP oferece diversas maneiras de escrever dados em arquivos, oferecendo flexibilidade dependendo de suas necessidades. Este artigo explora dois métodos principais: usando file_put_contents()
para escrita direta e usando fopen()
, fwrite()
e fclose()
para um controle mais refinado.
Sumário
Usando file_put_contents()
file_put_contents()
é o método mais simples para escrever dados em um arquivo. Ele aceita o nome do arquivo e os dados como argumentos. Arquivos existentes são sobrescritos; novos arquivos são criados se não existirem.
<?php
$data = "Este é o texto a ser escrito.n";
$filename = "meu_arquivo.txt";
if (file_put_contents($filename, $data) !== false) {
echo "Dados escritos com sucesso em $filename";
} else {
echo "Erro ao escrever em $filename";
}
?>
Este trecho escreve a string $data
em meu_arquivo.txt
. A instrução if
verifica o valor retornado (número de bytes escritos em caso de sucesso, false
em caso de falha).
Adicionando a um arquivo: Use a flag FILE_APPEND
para adicionar em vez de sobrescrever:
<?php
$data = "Este texto será adicionado.n";
$filename = "meu_arquivo.txt";
if (file_put_contents($filename, $data, FILE_APPEND) !== false) {
echo "Dados adicionados com sucesso em $filename";
} else {
echo "Erro ao adicionar em $filename";
}
?>
Usando fopen()
, fwrite()
e fclose()
Para um controle mais granular, use fopen()
, fwrite()
e fclose()
. fopen()
abre o arquivo, fwrite()
escreve os dados e fclose()
o fecha. Isso é benéfico para arquivos grandes ou múltiplas operações de escrita.
<?php
$filename = "meu_arquivo.txt";
$handle = fopen($filename, 'w'); // 'w' abre para escrita, sobrescrevendo o conteúdo existente
if ($handle) {
$data = "Esta é a primeira linha.n";
$data .= "Esta é a segunda linha.n";
fwrite($handle, $data);
fclose($handle);
echo "Dados escritos com sucesso em $filename";
} else {
echo "Erro ao abrir $filename";
}
?>
Este exemplo abre o arquivo no modo de escrita (‘w’). O conteúdo existente é apagado. fwrite()
escreve os dados. fclose()
é crucial para garantir que os dados sejam escritos e os recursos sejam liberados.
Adicionando com fopen()
: Use o modo ‘a’ para adicionar:
<?php
$filename = "meu_arquivo.txt";
$handle = fopen($filename, 'a'); // 'a' abre para adicionar
if ($handle) {
$data = "Este texto será adicionado.n";
fwrite($handle, $data);
fclose($handle);
echo "Dados adicionados com sucesso em $filename";
} else {
echo "Erro ao abrir $filename";
}
?>
Sempre trate erros (por exemplo, arquivos não graváveis, problemas de permissão). Verifique os valores retornados pelas funções e implemente o tratamento de erros apropriado. Escolha entre file_put_contents()
e fopen()/fwrite()/fclose()
com base em suas necessidades. file_put_contents()
é conciso para tarefas simples; fopen()/fwrite()/fclose()
oferece maior controle para cenários complexos.