0Pricing
PHP Academy · Aula

Escrita e acréscimo em arquivos

Escreva dados em arquivos com file_put_contents e FILE_APPEND.

Escrita e acréscimo em arquivos é uma aula grátis de PHP Academy no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de PHP Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de PHP Academy inclui 4 aulas no total.

Gravando arquivos em PHP

O PHP oferece várias formas de gravar em arquivos:

  • file_put_contents() — grava uma string no arquivo em uma única chamada
  • fopen() + fwrite() — gravação baseada em fluxo
  • Use o sinalizador FILE_APPEND para adicionar conteúdo em vez de sobrescrever

file_put_contents()

Grave uma string em um arquivo — crie o arquivo se ele não existir e sobrescreva-o se já existir:

<?php
$data = "Hello, PHP!\nThis is line 2.\n";

$bytes = file_put_contents('/tmp/output.txt', $data);

if ($bytes === false) {
    echo 'Failed to write';
} else {
    echo "Wrote $bytes bytes";
}

Adicionando conteúdo com FILE_APPEND

Adicione conteúdo ao final de um arquivo existente com o sinalizador FILE_APPEND:

<?php
$logEntry = date('Y-m-d H:i:s') . ' - User logged in' . PHP_EOL;

file_put_contents(
    '/var/log/app.log',
    $logEntry,
    FILE_APPEND | LOCK_EX  // append + exclusive lock
);

Modos de gravação do fopen

Os modos de abertura do fopen determinam como o arquivo será aberto:

  • 'w' — grava, reduz o tamanho a zero ou cria
  • 'a' — grava, adiciona ao final e cria se não existir
  • 'x' — grava e falha se o arquivo já existir
  • 'r+' — lê e grava a partir do início; o arquivo precisa existir

fopen + fwrite

Gravação baseada em fluxo para obter controle preciso:

<?php
$handle = fopen('/tmp/report.txt', 'w');

if ($handle === false) die('Cannot open file');

fwrite($handle, "Report generated: " . date('Y-m-d') . "\n");
fwrite($handle, str_repeat('-', 40) . "\n");
fwrite($handle, "Total: 1234\n");

fclose($handle);
echo 'Report written';

Gravando arquivos CSV

Use fputcsv() para gravar linhas CSV formatadas corretamente:

<?php
$rows = [
    ['Name', 'Email', 'Score'],
    ['Alice', 'alice@test.com', 95],
    ['Bob',   'bob@test.com',   87],
];

$handle = fopen('/tmp/results.csv', 'w');
foreach ($rows as $row) {
    fputcsv($handle, $row);
}
fclose($handle);

Gravando arquivos JSON

Serialize dados do PHP para JSON e grave-os em um arquivo:

<?php
$config = [
    'version' => '2.0',
    'debug'   => false,
    'db'      => ['host' => 'localhost', 'port' => 3306],
];

$json = json_encode($config, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES);
file_put_contents('/app/config.json', $json);

echo 'Config saved';

Gravação atômica de arquivos

Grave em um arquivo temporário e depois renomeie-o para fazer atualizações atômicas (seguras contra falhas):

<?php
$target  = '/app/data.json';
$tmpFile = $target . '.tmp.' . uniqid();

$data = json_encode(['ts' => time(), 'value' => 42]);

file_put_contents($tmpFile, $data, LOCK_EX);
rename($tmpFile, $target);  // atomic on most OSes

echo 'File updated atomically';

Permissões e propriedade

Defina as permissões do arquivo depois de criá-lo com chmod():

<?php
$path = '/var/www/uploads/avatar.jpg';

// Copy uploaded temp file to destination
move_uploaded_file($_FILES['avatar']['tmp_name'], $path);

// Set permissions (owner read/write, group read, world read)
chmod($path, 0644);

echo 'File uploaded and permissions set';

Arquivos temporários

Crie arquivos temporários com segurança usando tempnam() ou tmpfile():

<?php
// Create a named temp file
$tmpPath = tempnam(sys_get_temp_dir(), 'php_');
file_put_contents($tmpPath, 'temp data');
$content = file_get_contents($tmpPath);
unlink($tmpPath);  // delete when done

// Anonymous temp file handle
$tmp = tmpfile();
fwrite($tmp, 'anonymous temp');
// auto-deleted when $tmp is garbage collected

Cópia e movimentação de arquivos

Copie e renomeie/mova arquivos com funções integradas:

<?php
// Copy a file
copy('/src/template.html', '/dst/page.html');

// Move / rename
rename('/tmp/upload_abc', '/storage/images/photo.jpg');

// Delete
unlink('/tmp/old_file.txt');

// Check if file was copied successfully
if (copy('a.txt', 'backup.txt')) {
    echo 'Backup created';
}

Verificação rápida

Qual sinalizador você passa para file_put_contents() para adicionar conteúdo ao final de um arquivo em vez de sobrescrevê-lo?

Recapitulação: gravação de arquivos

Elementos essenciais da gravação de arquivos:

  • file_put_contents() — forma mais simples de gravar/sobrescrever
  • sinalizador FILE_APPEND para adicionar ao final
  • fopen('a', ...) + fwrite() para gravação em fluxo
  • fputcsv() para saída CSV
  • gravações atômicas: grave em um arquivo temporário + rename()
  • chmod() para definir permissões depois da criação

Perguntas Frequentes

A aula “Escrita e acréscimo em arquivos” é grátis?

Sim — o texto completo de “Escrita e acréscimo em arquivos” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de PHP Academy, atualize para CoddyKit PRO. O curso de PHP Academy inclui 4 aulas no total.

O que vou aprender em “Escrita e acréscimo em arquivos”?

Escreva dados em arquivos com file_put_contents e FILE_APPEND. Você pratica PHP Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar PHP Academy?

Nenhuma experiência prévia é necessária. PHP Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.

Quanto tempo leva a aula “Escrita e acréscimo em arquivos”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de PHP Academy?

Sim. Cada aula de PHP Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Leitura de arquivos com PHP
  2. Escrita e acréscimo em arquivos
  3. Trabalho com diretórios
  4. Tratamento de envios de arquivos
← Voltar para PHP Academy