🚀 Capítulo 09: Investigando Arquivos (Tema: Sherlock)

NOTE

Este capítulo utiliza a temática de Sherlock Holmes para explicar a manipulação de arquivos (leitura e escrita) em PHP. Aprenda a guardar dados de forma permanente sem usar banco de dados!


1. 🎯 Objetivo da Aula

Compreender como o PHP pode ler e escrever arquivos de texto no computador do servidor, usando funções simples como file_get_contents e file_put_contents.

2. 🏢 O Cenário Prático (Seu Desafio)

O mestre dos detetives, Sherlock Holmes, resolve os casos mais complexos anotando todas as pistas em seu caderno de couro. Quando ele descobre algo novo, ele escreve. Quando ele precisa revisar o caso, ele abre o caderno e lê.

No PHP, antes de aprendermos a mexer com bancos de dados complexos, nós podemos usar arquivos de texto comuns (.txt) para guardar informações de forma permanente.

  • Se o seu site precisa apenas guardar uma lista de e-mails de pessoas que querem receber novidades, um arquivo de texto resolve perfeitamente! Seu desafio é ser o arquivista do Sherlock!

🧠 Fundamentos: A Teoria Traduzida

✍️ 1. Escrevendo em um Arquivo (file_put_contents):

Essa função cria o arquivo se ele não existir e escreve o texto lá dentro.

$texto = "Pista 1: O suspeito usava botas de lama.\n";
file_put_contents("caderno.txt", $texto);

Atenção: Do jeito acima, se você rodar o código de novo, ele apaga o que estava lá e grava por cima. Para adicionar no final sem apagar, usamos a bandeira FILE_APPEND:

file_put_contents("caderno.txt", "Pista 2: Ele fuma cachimbo.\n", FILE_APPEND);

📖 2. Lendo um Arquivo (file_get_contents):

Essa função lê todo o conteúdo do arquivo e joga dentro de uma variável como se fosse um grande texto.

$conteudo = file_get_contents("caderno.txt");
echo $conteudo;

4. 📖 Exemplo Guiado: O Diário do Detetive

Vamos criar um código que adiciona uma pista e depois lê todas as pistas do caderno:

<?php
$arquivo = "caderno_sherlock.txt";
 
// 1. Adiciona uma nova pista
file_put_contents($arquivo, "Caso dos 4: Suspeito visto na estação.\n", FILE_APPEND);
 
// 2. Lê todo o caderno
$diarioCompleto = file_get_contents($arquivo);
 
echo "--- Caderno de Sherlock ---\n";
echo $diarioCompleto;
?>

5. 🛠️ Prática Obrigatória 1: Salvando Dados

  1. Escreva a linha de código em PHP que salva o texto "Elementar, meu caro Watson!" dentro de um arquivo chamado frase.txt.

6. 🛠️ Prática Obrigatória 2: Lendo Dados

  1. Escreva a linha de código em PHP que lê o conteúdo do arquivo frase.txt e guarda na variável $mensagem.

7. 📤 Instruções de Entrega (GitHub Desktop + Microsoft Teams)

  1. Faça o Commit: No GitHub Desktop, digite a mensagem (ex: Finaliza Capítulo 09 PHP_Sherlock) e clique em Commit to main.
  2. Envie para a Nuvem (Push): Clique em Push origin.

8. 📂 Estrutura de Pastas

spec_backend_com_php_e_laravel/
├── capitulos/
│   └── capitulo_09_sherlock.md

💡 Checkpoint de Lógica

Para que essas funções funcionem na internet real, a pasta onde o seu site está hospedado precisa ter permissão de escrita dada pelo servidor. Caso contrário, o PHP dará um erro dizendo que não tem permissão para criar o arquivo!

10. 🔥 Desafio de Fixação

Pesquise como quebrar um arquivo de texto longo em várias partes menores usando a função explode() do PHP.

🔑 Gabarito de Código/Fórmulas

Gabarito da Prática 1:

file_put_contents("frase.txt", "Elementar, meu caro Watson!");

Gabarito da Prática 2:

$mensagem = file_get_contents("frase.txt");

Capitulo Anterior | Proximo Capitulo