Função fgetcsv() do PHP

Definição e uso

A função fgetcsv() lê uma linha do ponteiro de arquivo e analisa os campos CSV.

Com fgets() Semelhante, mas diferente, o fgetcsv() analisa a linha lida e encontra os campos no formato CSV, retornando um array contendo esses campos.

fgetcsv() retorna FALSE em caso de erro, incluindo ao encontrar o final do arquivo.

Comentário:Desde o PHP 4.3.5, a operação do fgetcsv() é segura em binário.

Sintaxe

fgetcsv(file,length,separator,enclosure)
Parâmetro Descrição
file Obrigatório. Define o arquivo a ser verificado.
length

Opcional. Define o comprimento máximo da linha. Deve ser maior que a linha mais longa do arquivo CVS.

No PHP 5, o parâmetro é opcional. Antes do PHP 5, era obrigatório.

Se o parâmetro for ignorado (definido como 0 nas versões posteriores ao PHP 5.0.4), a长度 não terá limite, mas pode afetar a eficiência de execução.

separator Opcional. Define o caractere de delimitador de campo (permitido apenas um caractere), o valor padrão é a vírgula.
enclosure

Opcional. Define o caractere de delimitação de campo (permitido apenas um caractere), o valor padrão é aspas duplas.

Este parâmetro foi adicionado no PHP 4.3.0.

Dicas e comentários

Comentário:Linhas em branco no arquivo CSV serão retornadas como um array contendo um único campo null, não sendo tratadas como erro.

Comentário:Esta função é sensível ao conjunto de caracteres. Por exemplo, se o LANG for definido como en_US.UTF-8, arquivos de codificação de um byte poderão apresentar erros de leitura.

Comentário:Se o PHP não reconhecer o caractere de fim de linha de arquivos Macintosh ao ler o arquivo, você pode ativar a opção de configuração de tempo de execução auto_detect_line_endings.

Exemplo

Exemplo 1

<?php
$file = fopen("contacts.csv","r");
print_r(fgetcsv($file));
fclose($file);
?>

Arquivo CSV:

George, John, Thomas, USA
James, Adrew, Martin, USA

Saída similar a:

Array 
( 
[0] => George
[1] => John 
[2] => Thomas
[3] => USA
)

Exemplo 2

<?php
$file = fopen("contacts.csv","r");
while(! feof($file))
  {
  print_r(fgetcsv($file));
  }
fclose($file);
?>

Arquivo CSV:

George, John, Thomas, USA
James, Adrew, Martin, USA

Saída similar a:

Array 
( 
[0] => George
[1] => John 
[2] => Thomas
[3] => USA
Array
(
[0] => James
[1] => Adrew
[2] => Martin
[3] => USA
)