Función fgetcsv

La función fgetcsv lee una línea de un archivo y la analiza en campos con formato CSV. El primer parámetro de la función acepta un puntero a un archivo abierto, el segundo - la longitud máxima de la línea, el tercero - el separador de campos (por defecto coma), el cuarto - el carácter delimitador (por defecto comillas dobles), el quinto - el carácter de escape.

Sintaxis

phpfgetcsv(
  resource $handle,
  int $length = 0,
  string $separator = ",",
  string $enclosure = "\"",
  string $escape = "\"
);

Ejemplo

Leamos un archivo CSV línea por línea y mostremos el contenido:

php<?php
  $file = fopen('data.csv', 'r');
  while (($row = fgetcsv($file)) !== false) {
    print_r($row);
  }
  fclose($file);
?>

Resultado de la ejecución del código para un archivo con contenido "a,b,c":

php['a', 'b', 'c']

Ejemplo

Lectura de CSV especificando la longitud máxima de línea y un separador personalizado:

php<?php
  $file = fopen('data.csv', 'r');
  while (($row = fgetcsv($file, 1000, ';')) !== false) {
    print_r($row);
  }
  fclose($file);
?>

Resultado de la ejecución del código para un archivo con contenido "a;b;c":

php['a', 'b', 'c']

Ejemplo

Lectura de CSV con comillas y escape:

php<?php
  $file = fopen('data.csv', 'r');
  while (($row = fgetcsv($file, 0, ',', '"', '\')) !== false) {
    print_r($row);
  }
  fclose($file);
?>

Resultado de la ejecución del código para un archivo con contenido '"a,b",c,"d\"e"':

php['a,b', 'c', 'd"e']

Véase también

  • la función fputcsv,
    que escribe datos en CSV
  • la función fgets,
    que lee una línea de un archivo