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 )