fgetcsv
(PHP 4, PHP 5)
fgetcsv — Lê uma linha do ponteiro de arquivos e a interpreta como campos CSV
Descrição
Similar à função fgets(), exceto que a fgetcsv() interpreta a linha em busca de campos no formato CSV e retorna um array contendo os campos lidos.
Parâmetros
- handle
-
Um ponteiro de arquivo válido para um arquivo aberto com sucesso por fopen(), popen() ou fsockopen().
- length
-
Deve ser maior do que a maior linha (em caracteres) a ser encontrada no arquivo CSV (permitindo caracteres de fim-de-linha). Se tornou opcional no PHP 5. Omitir este parâmetro (ou defini-lo como 0 no PHP 5.0.4 e posterior) o tamanho da linha não é limitado, o que é levemente mais lento.
- delimiter
-
Define o delimitador de campo (somente um caractere). O padrão é uma vÃrgula.
- enclosure
-
Define o caractere que cerca um campo (somente um caractere). O padrão é aspas duplas.
- escape
-
Define o caractere de escape (somente um caractere). O padrão é barra invertida (\)
Valor Retornado
Retorna um array numérico contendo os campos lidos.
Nota: Uma linha em branco em um arquivo CSV será retornada como um array contendo um único campo nulo (null), e não será tratada como um erro.
Nota: Se você está tendo problemas com o PHP no reconhecimento do final de linha quando criando ou lendo arquivos num computador Macintosh, você pode habilitar a opção auto_detect_line_endings.
fgetcsv() returna FALSE em caso de erro, inclusive no final do arquivo.
Histórico
Versão | Descrição |
---|---|
5.3.0 | O parâmetro escape foi adicionado |
4.3.5 | fgetcsv() passou a ser segura para binários |
4.3.0 | O parâmetro enclosure foi adicionado |
Exemplos
Example#1 Lê e imprime todo o conteúdo de um arquivo CSV
<?php
$row = 1;
$handle = fopen ("teste.csv","r");
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
$num = count ($data);
echo "<p> $num campos na linha $row: <br /></p>\n";
$row++;
for ($c=0; $c < $num; $c++) {
echo $data[$c] . "<br />\n";
}
}
fclose ($handle);
?>
Notas
Nota: A definição de localidade é levada em conta por esta função. Se LANG é por exemplo en_US.UTF-8, arquivos em codificação de um byte são lidos de maneira errada por esta função.