Já vos tinha mostrado como podemos ler ficheiros csv com a classe PHPExcel, mas podemos também fazê-lo muito facilmente recorrendo à função nativa do PHP fgetcsv().

Esta função é específica para lidar com este tipo de ficheiros, sendo também de utilização extremamente fácil e simples.

Só para terem uma ideia, na mais simples das formas com a função fgetcsv() podemos ler dados de um ficheiro csv com apenas 4 linhas de código.

Uma linha de código para abrir o ficheiro, uma linha de código para obter os dados de cada linha do ficheiro, uma linha de código para mostrar/usar os dados obtidos e outra linha de código para fechar o ficheiro.

Mas vamos passar a exemplificar esta simplicidade toda. Este é o conteúdo do ficheiro csv deste exemplo:

ler_ficheiros_csv_fgetcsv

Primeiro que tudo temos então de abrir o nosso ficheiro csv em modo de leitura (parâmetro “r”), recorrendo à função fopen() e guardando temporariamente o ficheiro em memória na variável $handle:

 

Depois de aberto o ficheiro temos de obter os dados do mesmo linha por linha. É nesta fase que entra a função fgetcsv(). Os 3 parâmetros que a função fgetcsv() recebe são os seguintes:

  • variável que contém o ficheiro aberto (neste caso $handle);
  • limite de dados em número de caracteres a ler por linha (podemos colocar 0 “zero” para ilimitado);
  • caracter delimitador dos campos (neste caso é “;“).

 

Esta função retorna um array com os dados da linha, no entanto temos de controlar o seu resultado para avaliarmos se chegámos ao fim do ficheiro. Basta-nos verificar se o que a função retorna é diferente de false, o que quer dizer que temos dados. Se o resultado da função for igual a false não temos mais resultados e chegámos ao fim do ficheiro:

 

De seguida apenas temos de usar os dados guardados na variável $data, que neste caso é um array de dados, ou seja, tem os dados de cada coluna da respectiva linha. De uma forma muito simples podemos mostrar os dados do ficheiro deste exemplo (que tem 3 colunas) desta forma:

 

Aqui temos então as 4 linhas de código de que vos falei, da forma mais simples de ler ficheiros csv. Aqui fica o exemplo completo para poderem testar:

 

Estes dados pode ser tratados das mais diversas formas, como por exemplo guardar os dados numa base de dados. De forma a podermos visualizar os dados mais organizados, podemos mostrá-los no browser numa tabela. Assim sendo aqui fica o exemplo final um pouco mais elaborado, mas ainda assim simples:

 

O resultado deste exemplo será algo idêntico a este:.

ler_ficheiros_csv_fgetcsv_resultado

Tiago Ramalho

Tiago Ramalho é um profissional de Informática interessado em Internet, Programação .NET e PHP e blogging. Nos tempos livres escreve nos interessespessoais.com sobre Jardim, Saúde, Sistemas, utilitários e outros temas relacionados com informática.

More Posts - Website - Twitter - Pinterest - Google Plus