Função fgetcsv

A função fgetcsv lê uma linha de um arquivo e a analisa em campos no formato CSV. O primeiro parâmetro da função é um ponteiro para um arquivo aberto, o segundo - o comprimento máximo da linha, o terceiro - o separador de campos (por padrão vírgula), o quarto - o caractere delimitador (por padrão aspas duplas), o quinto - o caractere de escape.

Sintaxe

phpfgetcsv(
  resource $handle,
  int $length = 0,
  string $separator = ",",
  string $enclosure = "\"",
  string $escape = "\"
);

Exemplo

Vamos ler um arquivo CSV linha por linha e exibir o conteúdo:

php<?php
  $file = fopen('data.csv', 'r');
  while (($row = fgetcsv($file)) !== false) {
    print_r($row);
  }
  fclose($file);
?>

Resultado da execução do código para um arquivo com conteúdo "a,b,c":

php['a', 'b', 'c']

Exemplo

Leitura de CSV com especificação do comprimento máximo da linha e separador personalizado:

php<?php
  $file = fopen('data.csv', 'r');
  while (($row = fgetcsv($file, 1000, ';')) !== false) {
    print_r($row);
  }
  fclose($file);
?>

Resultado da execução do código para um arquivo com conteúdo "a;b;c":

php['a', 'b', 'c']

Exemplo

Leitura de CSV com aspas e escape:

php<?php
  $file = fopen('data.csv', 'r');
  while (($row = fgetcsv($file, 0, ',', '"', '\')) !== false) {
    print_r($row);
  }
  fclose($file);
?>

Resultado da execução do código para um arquivo com conteúdo '"a,b",c,"d\"e"':

php['a,b', 'c', 'd"e']

Veja também

  • a função fputcsv,
    que grava dados em CSV
  • a função fgets,
    que lê uma linha de um arquivo