Como analisar um arquivo CSV em PHP
Um CSV
é um tipo de arquivo. Significa Comma Separated Values
. É comumente utilizado em diferentes softwares, como o Excel. Isto permite que os dados sejam salvos em um formato tabular e com uma extensão .csv
.
Para analisar um arquivo CSV
em PHP, isso pode ser feito utilizando a combinação de funções fopen()
, fgetcsv()
e fclose()
que estão embutidas no PHP.
Exemplo:
/*
//sampleFile.csv
dog, cat, rat, fish
horse, cow, carabao
bird, rabbit, chicken
*/
$ctr = 1;
if (($file = fopen("sampleFile.csv", "r")) !== FALSE) {
while (($record = fgetcsv($handle, 1000, ",")) !== FALSE) {
$total = count($record);
echo "<p> $total fields in line $row: <br /></p>\n";
$ctr++;
for ($x = 0; $x < $ctr; $x++) {
echo $record[$x] . "<br />\n";
}
}
fclose($file);
}
//output:
/*
4 fields in line 1:
dog
cat
3 fields in line 2:
horse
cow
carabao
3 fields in line 3:
bird
rabbit
chicken
*/
O exemplo acima analisa o conteúdo de sampleFile.csv
utilizando estas funções:
fopen(Filename, Mode, Include_path, context)
Esta função aceita uma URL ou arquivo, vincula um recurso nomeado que é especificado pelo nome do arquivo a um fluxo.
Parâmetros:
Filename
(obrigatório) - Este parâmetro especifica o arquivo ou URL a ser aberto.Mode
(obrigatório) - Este representa o tipo de acesso que você necessita ao arquivo.Include_path
(opcional) - Definindo este parâmetro como1
, o arquivo será procurado noInclude_path
.context
(opcional) - Especifica o conteúdo do manipulador do arquivo. É um array de opções que pode ser atualizado sobre o comportamento do fluxo.
fgetcsv(File, Length, Separator, Enclosure, Escape)
Esta função é responsável pela análise de uma linha de um arquivo CSV aberto.
Parâmetros:
-
File
(obrigatório) - Este parâmetro especifica o arquivo aberto para retornar e analisar uma linha de um arquivo CSV aberto. -
Length
(opcional no PHP 5 e abaixo, mas necessário no PHP 5.1 e acima) - Este parâmetro é o comprimento máximo da linha. Este deve ser maior do que a linha mais longa do arquivo. Se este parâmetro não estiver presente, então o comprimento não é limitado, o que o torna mais lento de analisar. -
Separator
(opcional) - Este parâmetro é o separador de campo, e o valor padrão é uma vírgula -,
. -
Enclosure
(opcional) - Este parâmetro é o enclausuramento do campo, e o valor padrão é"
. -
Escape
(opcional) - Este parâmetro é o caractere de escape, e o valor padrão é\\
. -
fclose()
Esta função fecha um ponteiro de arquivo aberto.
Parâmetro:
File
(obrigatório) - Especifica qual arquivo fechar.
fopen()
.