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 )