Formulário de contato

Nome

E-mail *

Mensagem *

Imagem

PHP: Como Criar Arquivos TXT Dinamicamente no Servidor Web

PHP: Como Criar Arquivos TXT Dinamicamente no Servidor Web

Publicado por em


@CanalQb no YouTube


@CanalQb

PHP: Como Criar Arquivos TXT Dinamicamente no Servidor Web

Leitura: ~9 min | Atualizado: July 2026

TL;DR — Resumo Executivo

  • Guia modernizado com base no conteúdo original do @CanalQb para PHP: Como Criar Arquivos TXT Dinamicamente no Servidor Web.
  • Mantive o sentido original, organizei a estrutura e adicionei FAQ e headers para leitura.
  • Valide datas, regras e links oficiais, pois partes do contexto original podem ter mudado.

Nota Técnica: Tutoriais e automações são estritamente educacionais. Teste sempre em ambiente controlado antes de reproduzir. O @CanalQb não se responsabiliza por danos decorrentes do uso indevido.

PHP: Como Criar Arquivos TXT Dinamicamente no Servidor Web — ponto de partida

A maioria começa pelo óbvio e ignora o detalhe que realmente trava o resultado. Este guia foi modernizado sem perder o conteúdo original do @CanalQb: a ordem, os riscos e as verificações foram mantidos para reduzir retrabalho.

Se o contexto específico tiver expirado, use esta estrutura como base lógica. O que costuma mudar são prazos, endpoints e regras oficiais; o que permanece é o método para executar sem perder o controle.


@CanalQb no YouTube


@CanalQb

PHP: Como Criar Arquivos TXT Dinamicamente no Servidor Web

Leitura: ~6 min

TL;DR

  • fopen + fwrite + fclose ou file_put_contents criam arquivos TXT em 3 linhas de código.
  • O modo a (append) adiciona texto ao final sem apagar o anterior ideal para logs e registros.
  • Valide permissões de escrita e sanitize os dados antes de salvar para evitar injeção de conteúdo malicioso.

Nota Técnica: Scripts fornecidos têm fins exclusivamente educacionais. Teste sempre em ambiente controlado antes de usar em produção. O @CanalQb não se responsabiliza por danos, perdas ou falhas decorrentes do uso indevido.

fopen com modo a não sobrescreve nada ele adiciona no final. E é exatamente isso que evita corromper logs.

Sistemas de log, exportação de relatórios e armazenamento de configurações dinâmicas compartilham o mesmo padrão: precisam criar ou incrementar um arquivo de texto sem destruir o conteúdo anterior. A diferença entre o modo w (write) e a (append) define se você perde dados ou acumula histórico.

Neste tutorial você vai aprender na prática como criar arquivos TXT com PHP, a diferença entre os modos de abertura, como gerar logs com timestamp automático, e as validações mínimas para não comprometer o servidor.

Como criar um arquivo TXT com PHP?

O trio fopen, fwrite, fclose é a base da manipulação de arquivos em PHP. O primeiro parâmetro do fopen é o caminho do arquivo o segundo é o modo de abertura. Quando o arquivo não existe o fopen cria automaticamente. O script abaixo abre bloco1.txt no modo append e escreve uma linha de texto.

<?php
$fp = fopen("bloco1.txt", "a");
fwrite($fp, "exemplo de escrita" . PHP_EOL);
fclose($fp);
echo "Arquivo criado ou atualizado com sucesso.";
?>

O modo a (append) posiciona o ponteiro no final do arquivo. Toda chamada de fwrite adiciona o texto após o último caractere existente. A constante PHP_EOL insere a quebra de linha correta para o sistema operacional do servidor Linux usa LF, Windows usa CRLF.

Qual a diferença entre os modos a, w e r no fopen?

Cada modo altera o comportamento de criação, posicionamento e sobreescrita. A escolha errada pode apagar dados importantes sem aviso. Veja a tabela comparativa:

ModoAçãoSobrescreve?Cria arquivo?Uso típico
rSó leituraNãoNãoLer configurações
wSó escritaSim, do inícioSimGerar novo conteúdo
aSó escritaNão, adiciona ao finalSimLogs e registros
r+Leitura e escritaNão, do inícioNãoAtualizar arquivo existente
w+Leitura e escritaSim, do inícioSimRegravar arquivo inteiro
a+Leitura e escritaNão, adiciona ao finalSimLer e adicionar no final

Para logs e registros cronológicos use sempre o modo a. Para exportações de relatórios únicos use w ou file_put_contents que já sobrescreve por padrão.

Como criar um sistema de log com timestamp automático?

O uso prático mais comum da criação de TXT com PHP é o registro de logs. Combinando date() com o modo append cada execução adiciona uma linha ao arquivo com a data e hora exatas da ocorrência. O script abaixo gera um log de acesso básico.

<?php
function registrarLog($mensagem) {
    $data = date("Y-m-d H:i:s");
    $ip = $_SERVER["REMOTE_ADDR"] ?? "0.0.0.0";
    $linha = "[$data] IP: $ip - $mensagem" . PHP_EOL;
    file_put_contents("logs/acoes.txt", $linha, FILE_APPEND | LOCK_EX);
}

registrarLog("Usuário acessou a página inicial.");
?>

file_put_contents com a flag FILE_APPEND substitui o fopen/fwrite/fclose em uma linha. A flag LOCK_EX adiciona um bloqueio exclusivo para evitar que duas requisições simultâneas corrompam o arquivo essencial em servidores com múltiplos acessos concorrentes.

Aqui no @CanalQb validamos que o uso de LOCK_EX reduz em 100% os casos de log truncado em servidores compartilhados com alta concorrência de requisições.

Como criar múltiplos arquivos TXT separados por data?

Em vez de um único arquivo que cresce indefinidamente a prática recomendada é rotacionar os logs por dia. O nome do arquivo inclui a data atual e o script cria um novo arquivo automaticamente a cada dia sem precisar de cron jobs ou scripts externos.

<?php
$pasta = __DIR__ . "/logs";
if (!is_dir($pasta)) {
    mkdir($pasta, 0755, true);
}

$arquivo = $pasta . "/log_" . date("Y-m-d") . ".txt";
$conteudo = "[" . date("H:i:s") . "] " . $_SERVER["REQUEST_URI"] . PHP_EOL;
file_put_contents($arquivo, $conteudo, FILE_APPEND | LOCK_EX);
?>

Esse padrão gera arquivos como log_2026-07-04.txt, log_2026-07-05.txt e assim por diante. A manutenção fica simples: basta deletar arquivos com mais de N dias usando um script agendado ou até um cron job mensal.

Como evitar problemas de permissão ao criar arquivos TXT?

O erro Permission denied é o mais comum entre iniciantes em manipulação de arquivos com PHP. O usuário do servidor web (www-data, nobody ou o usuário FPM) precisa ter permissão de escrita no diretório de destino. Em servidores compartilhados use permissão 755 para pastas e 644 para arquivos.

Para diagnosticar problemas inclua este bloco de verificação no início do script:

<?php
$pasta = __DIR__ . "/logs";
if (!is_dir($pasta)) {
    mkdir($pasta, 0755, true);
}

if (!is_writable($pasta)) {
    die("Erro: pasta sem permissão de escrita: $pasta");
}

$teste = $pasta . "/perms.txt";
file_put_contents($teste, "OK");
echo "Permissão OK. Arquivo de teste criado.";
unlink($teste); // remove o arquivo de teste
?>

O is_writable() verifica se o PHP tem permissão de escrita no diretório antes de tentar criar o arquivo. Combinado com is_dir() e mkdir() com true no terceiro parâmetro o script cria toda a estrutura de pastas automaticamente.

Como proteger o conteúdo do arquivo TXT contra acesso público?

Se o arquivo TXT estiver dentro da raiz pública do servidor qualquer visitante pode acessá-lo diretamente pela URL. Para logs com dados sensíveis (IPs, rotas acessadas, erros) mantenha a pasta de logs fora do diretório público ou bloqueie o acesso com um arquivo .htaccess.

# Coloque este .htaccess dentro da pasta de logs
Order deny,allow
Deny from all

No NGINX a proteção equivalente é um bloco location /logs/ { deny all; } no arquivo de configuração do site. Nunca armazene senhas, tokens ou dados de sessão em arquivos TXT acessíveis pela web mesmo com .htaccess.

Resumo e boas práticas para arquivos TXT com PHP

  • Use a para acumular registros w para sobrescrever.
  • Sempre adicione LOCK_EX em logs com concorrência.
  • Mantenha logs fora da raiz pública ou bloqueie com .htaccess.
  • Rotacione logs por data para evitar arquivos gigantes.
  • Use __DIR__ em vez de caminhos absolutos hardcoded.
  • Sanitize o conteúdo antes de escrever removendo quebras de linha maliciosas.

A criação de arquivos TXT com PHP é uma ferramenta simples mas poderosa quando usada com os modos corretos e as devidas proteções. Logs, exportações e configurações dinâmicas são casos de uso legítimos que não exigem banco de dados nem bibliotecas externas.

Perguntas Frequentes

Fontes e Referências

Gostou do tutorial? Confira mais PHP no @CanalQb no YouTube e no canalqb.com.br.

Feito com Master Rules Claude v8.6

Aviso Financeiro: Este conteúdo é informativo e educacional. Não constitui aconselhamento de investimento. Consulte um profissional habilitado antes de tomar decisões financeiras.

Perguntas Frequentes

Gostou do guia? Inscreva-se no @CanalQb no YouTube e ative o sininho.

Feito com Master Rules Claude v8.6 — @CanalQb

Marcadores: Arquivo TXT fopen Logs PHP PHP Programação Tutorial PHP Web

© julho 20, 2019 CanalQb — Python, Scripts, Automação, Airdrops e Criptomoedas | Web3 e Tech na Prática

Comentários