Trabalhando com o sistema de arquivos em PHP: exemplos práticos e dicas

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

Trabalhando com o sistema de arquivos em PHP: do básico aos projetos reais

\n\n

Trabalhar com o sistema de arquivos é uma das tarefas principais de qualquer desenvolvedor web. Em PHP, existe um conjunto poderoso de funções integradas que permitem criar, ler, editar e excluir arquivos, além de gerenciar diretórios. Neste artigo, vamos analisar exemplos práticos que ajudarão você a dominar o trabalho com arquivos em PHP e aplicar esse conhecimento em projetos reais.

\n\n

Independentemente de você estar criando um sistema de logging, um uploader de arquivos ou apenas salvando dados de usuários, entender os fundamentos do sistema de arquivos em PHP é uma habilidade obrigatória. Vamos para a prática.

\n\n

Funções principais para trabalhar com arquivos

\n\n

O PHP oferece várias maneiras de interagir com arquivos. As mais populares são o uso de fopen, fwrite, fread e as funções de alto nível file_get_contents e file_put_contents. Vamos analisá-las com exemplos.

\n\n

Criação e escrita em arquivo

\n\n

Para criar um arquivo e escrever nele, use a função fopen com o modo 'w' (escrita com limpeza) ou 'a' (adição ao final).

\n\n
<?php\n$filename = 'log.txt';\n$file = fopen($filename, 'w');\n\nif ($file) {\n    fwrite($file, "Linha 1: Escrevendo no arquivo\\n");\n    fwrite($file, "Linha 2: Mais uma escrita\\n");\n    fclose($file);\n    echo "Arquivo criado e escrito com sucesso.";\n} else {\n    echo "Erro ao abrir o arquivo.";\n}\n?>
\n\n

Se precisar escrever dados rapidamente sem gerenciar o ponteiro, use file_put_contents:

\n\n
<?php\n$data = "Novo conteúdo para o arquivo.\\nSegunda linha.";\nfile_put_contents('data.txt', $data);\necho "Dados escritos.";\n?>
\n\n

Leitura de arquivo

\n\n

Para ler um arquivo linha por linha, use fgets em um loop:

\n\n
<?php\n$file = fopen('log.txt', 'r');\nif ($file) {\n    while (($line = fgets($file)) !== false) {\n        echo $line . "<br>";\n    }\n    fclose($file);\n}\n?>
\n\n

Alternativa — file_get_contents para ler todo o conteúdo em uma string:

\n\n
<?php\n$content = file_get_contents('log.txt');\necho nl2br($content);\n?>
\n\n

Verificação de existência e propriedades de arquivos

\n\n

Antes de trabalhar com um arquivo, é importante garantir que ele existe e está acessível para leitura ou escrita. O PHP fornece as funções file_exists, is_readable, is_writable e filesize.

\n\n

Exemplo de verificação de arquivo

\n\n
<?php\n$file = 'config.php';\n\nif (file_exists($file)) {\n    echo "Arquivo existe.<br>";\n    \n    if (is_readable($file)) {\n        echo "Arquivo está disponível para leitura.<br>";\n        echo "Tamanho do arquivo: " . filesize($file) . " bytes.";\n    } else {\n        echo "Arquivo existe, mas não está disponível para leitura.";\n    }\n} else {\n    echo "Arquivo não encontrado.";\n}\n?>
\n\n

Verificação do tipo de arquivo

\n\n

A função filetype retorna o tipo do arquivo: 'file', 'dir', 'link' e outros.

\n\n
<?php\n$path = 'uploads';\nif (file_exists($path)) {\n    echo "Tipo: " . filetype($path); // exibirá 'dir' se for uma pasta\n}\n?>
\n\n

Gerenciamento de diretórios

\n\n

Trabalhar com pastas em PHP não é menos importante. Você pode criar, excluir e escanear diretórios.

\n\n

Criação e exclusão de pastas

\n\n
<?php\n// Criando uma pasta\nif (!file_exists('backup')) {\n    mkdir('backup', 0777, true); // terceiro parâmetro true — criação recursiva\n    echo "Pasta criada.";\n}\n\n// Excluindo uma pasta vazia\nif (file_exists('temp')) {\n    rmdir('temp');\n    echo "Pasta excluída.";\n}\n?>
\n\n

Escaneando o conteúdo de um diretório

\n\n

A função scandir retorna um array de todos os arquivos e pastas

Blogs

Book Recommendations