(PHP 4, PHP 5)
fgetcsv — Lê uma linha do ponteiro de arquivos e a interpreta como campos CSV
$handle
[, int $length
[, string $delimiter
[, string $enclosure
[, string $escape
]]]] )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.
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 (\)
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 PHP não está apropriadamente reconhecendo o final de linha quando lendo arquivos ou criando por um computador Macintosh, habilitando a opção auto_detect_line_endings em tempo de execução pode ajudar a resolver o problema.
fgetcsv() returna FALSE
em caso de erro, inclusive no final do
arquivo.
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
|
Exemplo #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);
?>
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.