Por que trabalhar com arquivos em PHP é essencial para qualquer desenvolvedor
\n\nImagine: você está criando uma loja virtual. Um cliente faz upload da foto de perfil, um administrador exporta um CSV com os produtos e o sistema registra cada ação em log. Sem saber como manipular o sistema de arquivos em PHP, essas tarefas se tornam uma dor de cabeça. Mas, ao dominar as técnicas básicas, você conseguirá gerenciar dados no servidor com a mesma facilidade com que edita notas no celular.
\n\nNeste artigo, vamos explorar o trabalho com arquivos em PHP do básico ao avançado. Você aprenderá a ler e escrever dados, verificar permissões, fazer upload de arquivos para o servidor e evitar erros comuns. Vamos nessa!
\n\nFundamentos do sistema de arquivos em PHP
\n\nAntes de mergulharmos no código, vamos entender as principais funções que o PHP oferece. Elas podem ser divididas em três grupos:
\n\n- \n
- Verificação e metadados — se o arquivo existe, qual seu tamanho, tipo e permissões. \n
- Leitura e escrita — abrir um arquivo, ler uma linha, gravar dados e fechar. \n
- Gerenciamento da estrutura de arquivos — criar, renomear e excluir arquivos e pastas. \n
A maioria das operações de manipulação de arquivos em PHP requer apenas uma ou duas linhas de código. Mas é importante entender o contexto: onde o arquivo está localizado em relação ao seu script, quais permissões o servidor web possui e como tratar erros.
\n\nVerificando existência e permissões
\n\nA primeira coisa a fazer antes de qualquer operação é garantir que o arquivo existe. Para isso, usamos file_exists():
<?php\n$filename = 'config.php';\n\nif (file_exists($filename)) {\n echo "Arquivo $filename encontrado!";\n} else {\n echo "O arquivo não existe";\n}\n?>\n\nMas apenas existir não é suficiente. É preciso verificar se ele pode ser lido ou escrito. Para isso, temos is_readable() e is_writable():
<?php\n$file = 'dados.txt';\n\nif (is_readable($file)) {\n echo "Pode ser lido";\n}\nif (is_writable($file)) {\n echo "Pode ser escrito";\n}\n?>\n\nIsso é especialmente importante ao trabalhar com arquivos em PHP em produção — as permissões (chmod) são frequentemente a causa de erros como "Permission denied".
\n\nLendo arquivos em PHP: três métodos para cada necessidade
\n\nA leitura é a operação mais comum. O PHP oferece várias abordagens, cada uma ideal para uma situação específica.
\n\nMétodo 1: file_get_contents — para arquivos pequenos
\n\nSe você precisa ler o arquivo inteiro em uma string, esta é a melhor opção. Simples, rápido e sem complicações:
\n\n<?php\n$conteudo = file_get_contents('leia-me.txt');\necho $conteudo;\n?>\n\nIdeal para arquivos de configuração, templates e logs pequenos. Mas se o arquivo tiver 200 MB, é melhor evitar — a memória do servidor agradece.
\n\nMétodo 2: fopen + fgets — para arquivos grandes
\n\nQuando precisar processar um arquivo CSV enorme ou um log de vários gigabytes, use a leitura linha por linha. Isso não sobrecarrega a memória:
\n\n<?php\n$handle = fopen('arquivo-grande.log', 'r');\nif ($handle) {\n while (($linha = fgets($handle)) !== false) {\n // Processa cada linha individualmente\n echo $linha . "<br>";\n }\n fclose($handle);\n} else {\n echo "Erro ao abrir o arquivo";\n}\n?>\n\nObserve que sempre fechamos o arquivo com fclose(). Isso libera recursos do sistema.
Método 3: file() — lendo em um array de linhas
\n\nSe cada linha for um registro separado (por exemplo, uma lista de e-mails), você pode obter diretamente um array:
\n\n<?php\n$linhas = file('usuarios.txt');\nforeach ($linhas as $num_linha => $linha) {\n echo "Linha #{$num_linha}: " . htmlspecialchars($linha) . "<br>";\n}\n?>\n\nEste método é prático, mas, assim como file_get_contents, carrega todo o arquivo na memória.