Como ler e editar um arquivo utilizando PHP

No artigo de hoje, veremos como realizar a leitura e edição de um arquivo com o PHP. Vamos de uma forma simples ler um arquivo linha a linha, e o editar com o PHP.

Abrindo o arquivo

O primeiro passo será abrir o arquivo que queremos ler e editar. Vamos utilizar a função fopen do PHP, que nos permite abrir um arquivo ou URL. Para o exemplo do artigo vamos utilizar o arquivo teste.txt que contém um texto aleatório.

<?php

$file = fopen("teste.txt", "r+");

if (!$file) {
    exit("Falha ao abrir o arquivo");
}

Estamos utilizando o mode r+ que nos permite ler e escrever no arquivo. Para ver todos os modos disponíveis para abrir um arquivo, veja na documentação oficial do PHP.

Lendo o arquivo linha a linha

Após isto, vamos utilizar a função fgets do PHP, para recuperar a linha do arquivo que foi aberto. Para ler todas as linhas do arquivo, utilizamos esta função junto com o while. Com isso criamos um loop que, enquanto houver linhas no arquivo, utilizamos a função fgets para realizar a leitura.

Também utilizamos a função feof, para verificar se chegamos ao fim do arquivo e garantirmos que o arquivo foi lido completamente. Por último utilizamos a função fclose para fechar o arquivo aberto. O código completo ficará da seguinte maneira.

<?php

$file = fopen("teste.txt", "r+");

if (!$file) {
    exit("Falha ao abrir o arquivo");
}

while (($line = fgets($file)) !== false) {
    echo $line;
}

if (!feof($file)) {
    exit("Falha inesperada do fgets()");
}

fclose($file);

Editando o arquivo

Vamos inserir uma nova linha no arquivo, para escrever no arquivo vamos utilizar a função do PHP fwrite. Esta função realiza a escrita na posição em que o ponteiro está no arquivo.

Assim se abrirmos o arquivo como fizemos anteriormente e utilizar esta função para escrever, vamos escrever no início do arquivo pois o abrimos com o mode r+. Este modo de abertura coloca o ponteiro no início do arquivo.

<?php

$file = fopen("teste.txt", "r+");

if (!$file) {
    exit("Falha ao abrir o arquivo");
}

fwrite($file, "Teste no inicio do arquivo\n\n");

while (($line = fgets($file)) !== false) {
    echo $line;
}

if (!feof($file)) {
    exit("Falha inesperada do fgets()");
}

fclose($file);

Ao percorrer o array para sua leitura com o fgets, o ponteiro vai se movendo, assim se utilizarmos o fwrite quando o loop estiver no 10 por exemplo, vamos inserir o conteúdo na linha 10.

<?php

$file = fopen("teste.txt", "r+");

if (!$file) {
    exit("Falha ao abrir o arquivo");
}

$i = 0;

while (($line = fgets($file)) !== false) {
    if ($i == 10) {
        fwrite($file, "\n\nTeste no meio do arquivo\n\n");
    }

    echo $line;
    $i++;
}

if (!feof($file)) {
    exit("Falha inesperada do fgets()");
}

fclose($file);

E do mesmo modo se adicionarmos a função de escrita logo depois do loop, vamos inserir o conteúdo no final do arquivo.

<?php

$file = fopen("teste.txt", "r+");

if (!$file) {
    exit("Falha ao abrir o arquivo");
}

while (($line = fgets($file)) !== false) {
    echo $line;
}

if (!feof($file)) {
    exit("Falha inesperada do fgets()");
}

fwrite($file, "\n\nTeste no fim do arquivo");
fclose($file);

Com isso podemos escrever em qualquer local do arquivo, mas devemos estar atentos ao modo em que o mesmo foi aberto.

Uma observação ao escrever no arquivo utilizei o \n, que indica quebra de linha. Se eu não o utilizasse, o conteúdo seria inserido sem saltar linha junto com o conteúdo original do arquivo.

Um comentário em “Como ler e editar um arquivo utilizando PHP”

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *