Trabalhando com o sistema de arquivos em PHP: guia completo para iniciantes

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Introdução: por que o PHP sabe trabalhar com arquivos?

Qualquer projeto web, mais cedo ou mais tarde, enfrenta a necessidade de salvar dados no servidor. Seja o upload do avatar de um usuário, a criação de logs de erros ou a geração de relatórios — tudo isso exige a capacidade de gerenciar arquivos e pastas. O PHP oferece um conjunto poderoso de funções para trabalhar com o sistema de arquivos, e dominá-las não é tão difícil quanto parece.

Neste artigo, abordaremos as operações principais: criação, leitura, escrita, exclusão de arquivos e diretórios, além da verificação de permissões de acesso. Todos os exemplos são escritos em PHP puro e estão prontos para uso em seus projetos.



1. Fundamentos: abrir, ler e escrever arquivos

Antes de fazer qualquer coisa com um arquivo, é necessário abri-lo. Para isso, o PHP utiliza a função fopen(). Ela retorna um recurso (um ponteiro para o arquivo) com o qual você pode trabalhar em seguida.



Modos de abertura de arquivos

O segundo parâmetro de fopen() é o modo de acesso. Aqui estão os mais populares:

  • 'r' — somente leitura, ponteiro no início do arquivo.
  • 'w' — escrita (cria o arquivo ou limpa o existente).
  • 'a' — adicionar ao final do arquivo (cria se não existir).
  • 'x' — criação e escrita; se o arquivo já existir, ocorre um erro.


Exemplo: escrever texto em um arquivo

<?php$filename = 'test.txt';$file = fopen($filename, 'w') or die('Não foi possível abrir o arquivo');$text = "Olá, mundo!";fwrite($file, $text);fclose($file);echo 'Arquivo escrito com sucesso';?>

Após a escrita, sempre feche o arquivo com a função fclose() — isso libera recursos do sistema.



Ler um arquivo linha por linha

<?php$file = fopen('test.txt', 'r');while (!feof($file)) {    $line = fgets($file);    echo $line . '<br>';}fclose($file);?>

A função feof() verifica se o final do arquivo foi atingido. fgets() lê uma linha.



Alternativas mais simples

Para operações rápidas, o PHP oferece funções wrapper:

  • file_get_contents($filename) — lê o arquivo inteiro em uma string.
  • file_put_contents($filename, $data) — escreve uma string em um arquivo (cria ou sobrescreve).
<?php// Leitura$content = file_get_contents('test.txt');echo $content;

// Escritafile_put_contents('new.txt', 'Escrita simples');?>


2. Gerenciamento de diretórios: criação, exclusão, navegação

Trabalhar com pastas em PHP é quase tão simples quanto com arquivos. As principais funções são mkdir(), rmdir() e scandir().



Criar uma pasta

<?php$dir = 'uploads';if (!is_dir($dir)) {    mkdir($dir, 0777, true);    echo 'Pasta criada';} else {    echo 'A pasta já existe';}?>

O parâmetro 0777 são as permissões de acesso (máscara). O terceiro argumento true permite criar diretórios aninhados recursivamente (por exemplo, images/2024/).



Excluir uma pasta

A função rmdir() exclui apenas diretórios vazios. Se houver arquivos dentro, é necessário limpá-la primeiro:

<?phpfunction removeDir($dir) {    if (!is_dir($dir)) return;    $items = scandir($dir);    foreach ($items as $item) {        if ($item == '.' || $item == '..') continue;        $path = $dir . '/' . $item;        if (is_dir($path)) {            removeDir($path);        } else {            unlink($path);        }    }    rmdir($dir);}removeDir('temp');echo 'Pasta excluída';?>


Obter a lista de arquivos em uma pasta

<?php$files = scandir('uploads');foreach ($files as $file) {    if ($file != '.' && $file != '..') {        echo $file . '<br>';    }}?>


3.

Blogs

Book Recommendations