Función fgetcsv() de PHP

Definición y uso

La función fgetcsv() lee una línea desde el puntero de archivo y analiza los campos CSV.

Con fgets() Al igual que, pero diferente, fgetcsv() analiza la línea leída y encuentra los campos en formato CSV, luego devuelve un array que contiene estos campos.

fgetcsv() devuelve FALSE en caso de error, incluyendo al llegar al final del archivo.

Comentarios:Desde PHP 4.3.5, la operación de fgetcsv() es segura en modo binario.

Sintaxis

fgetcsv(file,length,separator,enclosure)
Parámetro Descripción
file Obligatorio. Define el archivo a verificar.
length

Opcional. Define la longitud máxima de una línea. Debe ser mayor que la línea más larga del archivo CVS.

En PHP 5, este parámetro es opcional. En versiones anteriores a PHP 5 es obligatorio.

Si se ignora (establecido en versiones posteriores a PHP 5.0.4 en 0), la longitud no tiene límite, aunque puede afectar la eficiencia de ejecución.

separator Opcional. Establece el delimitador de campo (solo se permite un carácter), el valor predeterminado es la coma.
enclosure

Opcional. Establece el delimitador de campo circundante (solo se permite un carácter), el valor predeterminado es la comilla doble.

Este parámetro se agregó en PHP 4.3.0.

Sugerencias y comentarios

Comentarios:Las líneas vacías en el archivo CSV se devolverán como un array que contiene un solo campo null, no se considerarán como errores.

Comentarios:Esta función es sensible a la configuración regional. Por ejemplo, si LANG se establece en en_US.UTF-8, los archivos de codificación de un solo byte mostrarán errores de lectura.

Comentarios:Si PHP no puede reconocer el carácter de final de línea del archivo Macintosh al leer el archivo, puede activar la opción de configuración de tiempo de ejecución auto_detect_line_endings.

Ejemplo

Ejemplo 1

<?php
$file = fopen("contacts.csv","r");
print_r(fgetcsv($file));
fclose($file);
?>

Archivo CSV:

George, John, Thomas, USA
James, Adrew, Martin, USA

Salida similar a:

Array 
( 
[0] => George
[1] => John 
[2] => Thomas
[3] => USA
)

Ejemplo 2

<?php
$file = fopen("contacts.csv","r");
while(! feof($file))
  {
  print_r(fgetcsv($file));
  }
fclose($file);
?>

Archivo CSV:

George, John, Thomas, USA
James, Adrew, Martin, USA

Salida similar a:

Array 
( 
[0] => George
[1] => John 
[2] => Thomas
[3] => USA
Array
(
[0] => James
[1] => Adrew
[2] => Martin
[3] => USA
)