0Pricing
PHP Academy · Aula

Leitura de arquivos com PHP

Leia o conteúdo de arquivos usando file_get_contents e fopen/fread.

Leitura de arquivos com PHP é uma aula grátis de PHP Academy no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de PHP Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de PHP Academy inclui 4 aulas no total.

PHP e o sistema de arquivos

O PHP pode ler, gravar e gerenciar arquivos no sistema de arquivos do servidor. Principais funções para leitura:

  • file_get_contents() — lê o arquivo inteiro como uma string
  • fopen() + fread() — leitura baseada em fluxo
  • file() — lê o arquivo para um array de linhas

file_get_contents()

A forma mais simples de ler todo o conteúdo de um arquivo para uma string:

<?php
$content = file_get_contents('/var/www/html/data.txt');

if ($content === false) {
    echo 'Could not read file';
} else {
    echo $content;
    echo strlen($content) . ' bytes';
}

Verificando se um arquivo existe

Sempre verifique antes de ler para evitar erros:

<?php
$path = '/var/data/config.json';

if (!file_exists($path)) {
    die('Config file not found');
}

if (!is_readable($path)) {
    die('No permission to read file');
}

$json = file_get_contents($path);
$config = json_decode($json, true);

file() — leitura para um array

file() lê um arquivo e retorna cada linha como um elemento de um array:

<?php
$lines = file('data.csv', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);

foreach ($lines as $lineNum => $line) {
    echo ($lineNum + 1) . ': ' . $line . PHP_EOL;
}

fopen, fread, fclose

Leitura de baixo nível baseada em fluxo para arquivos grandes — processe o conteúdo sem carregá-lo inteiro na memória:

<?php
$handle = fopen('large_file.txt', 'r');

if ($handle === false) die('Cannot open file');

// Read 1KB at a time
while (!feof($handle)) {
    $chunk = fread($handle, 1024);
    echo $chunk;
}

fclose($handle);

fgets para leitura linha a linha

fgets() lê uma linha por vez — usando pouca memória em arquivos grandes:

<?php
$handle = fopen('server.log', 'r');

while (($line = fgets($handle)) !== false) {
    if (str_contains($line, 'ERROR')) {
        echo 'Found error: ' . $line;
    }
}

fclose($handle);

Lendo arquivos remotos

file_get_contents() também pode ler de URLs HTTP se allow_url_fopen estiver habilitado:

<?php
$json = file_get_contents('https://api.example.com/data.json');

// Prefer cURL for more control and error handling
$ch = curl_init('https://api.example.com/data.json');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$status   = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);

SplFileObject

SplFileObject fornece uma interface OO para operações com arquivos:

<?php
$file = new SplFileObject('data.txt', 'r');

foreach ($file as $lineNum => $line) {
    echo $lineNum . ': ' . $line;
}

// Read specific line:
$file->seek(5);
echo $file->current(); // line 6 (0-indexed)

Lendo arquivos JSON

Um padrão comum: leia e decodifique um arquivo de configuração JSON:

<?php
function loadJsonConfig(string $path): array {
    if (!file_exists($path)) {
        throw new RuntimeException("Config not found: $path");
    }
    $json = file_get_contents($path);
    $data = json_decode($json, true);
    if (json_last_error() !== JSON_ERROR_NONE) {
        throw new RuntimeException('Invalid JSON: ' . json_last_error_msg());
    }
    return $data;
}

$cfg = loadJsonConfig('/app/config.json');

Informações do arquivo

Obtenha metadados sobre um arquivo sem ler seu conteúdo:

<?php
$path = '/var/www/html/image.jpg';

echo filesize($path);           // bytes
echo filetype($path);           // 'file'
echo filemtime($path);          // last modified timestamp
echo date('Y-m-d', filemtime($path));

$info = pathinfo($path);
echo $info['dirname'];    // /var/www/html
echo $info['basename'];   // image.jpg
echo $info['extension'];  // jpg

Bloqueando arquivos

Use o bloqueio de arquivos para evitar conflitos de gravação simultâneos:

<?php
$handle = fopen('counter.txt', 'r+');

if (flock($handle, LOCK_EX)) {  // exclusive lock
    $count = (int) fread($handle, 20);
    $count++;
    fseek($handle, 0);
    fwrite($handle, $count);
    fflush($handle);
    flock($handle, LOCK_UN);    // release
}

fclose($handle);

Verificação rápida

Qual função do PHP lê um arquivo inteiro para uma string em uma única chamada?

Recapitulação: leitura de arquivos

Elementos essenciais da leitura de arquivos:

  • file_get_contents() — arquivo inteiro como string
  • file() — arquivo como array de linhas
  • fopen/fread/fclose — fluxo para arquivos grandes
  • fgets() — leitura do fluxo linha a linha
  • Sempre verifique file_exists e is_readable primeiro
  • Use flock para garantir a segurança do acesso simultâneo

Perguntas Frequentes

A aula “Leitura de arquivos com PHP” é grátis?

Sim — o texto completo de “Leitura de arquivos com PHP” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de PHP Academy, atualize para CoddyKit PRO. O curso de PHP Academy inclui 4 aulas no total.

O que vou aprender em “Leitura de arquivos com PHP”?

Leia o conteúdo de arquivos usando file_get_contents e fopen/fread. Você pratica PHP Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar PHP Academy?

Nenhuma experiência prévia é necessária. PHP Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.

Quanto tempo leva a aula “Leitura de arquivos com PHP”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de PHP Academy?

Sim. Cada aula de PHP Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Leitura de arquivos com PHP
  2. Escrita e acréscimo em arquivos
  3. Trabalho com diretórios
  4. Tratamento de envios de arquivos
← Voltar para PHP Academy