(PHP 4, PHP 5)
fgetcsv — Obtiene una línea del puntero a un archivo y la examina para tratar campos CSV
$handle
   [, int $length = 0
   [, string $delimiter = ','
   [, string $enclosure = '"'
   [, string $escape = '\\'
  ]]]] )Similar a fgets() excepto que fgetcsv() examina la línea que lee para tratar campos en formato CSV y devuelve una matriz que contiene el campo leído.
handleUn puntero a un archivo abierto con éxito por fopen(), popen(), o fsockopen().
lengthDebe ser mayor que la línea más larga (en caracteres) a ser encontrada en el archivo CSV (permitiendo caracteres fin de línea finales). Se volvió opcional en PHP 5. Al omitir este parámetro (o estableciéndolo a 0 en PHP 5.0.4 y posterior), la longitud máxima de línea no está limitada, lo cual es ligeramente más lento.
delimiterEstablece el delimitador de campo (un sólo carácter).
enclosureEstablece el carácter de cierre de campo (un sólo carácter).
escapeEstablece el carácter de escape (un sólo carácter). Por defecto es una barra invertida.
Devuelve una matriz indexada que contiene los campos leídos.
Nota:
Una línea en blanco en un archivo CSV será devuelta como una matriz que comprende un simple campo null, y no será tratada como un error.
Nota: Si sufre problemas con PHP no reconociendo los finales de línea cuando lee o crea ficheros en Macintosh, puede probar de activar la opción de configuración en tiempo de ejecución auto_detect_line_endings para intentar resolver el problema.
   fgetcsv() devuelve NULL si se proporciona un
   handle no válido, o FALSE en los demás errores,
   incluido el final de archivo.
  
| Versión | Descripción | 
|---|---|
| 5.3.0 | Se añadió el parámetro escape | 
| 4.3.5 | fgetcsv() ahora es segura al trabajar con datos binarios | 
| 4.3.0 | Se añadió el parámetro enclosure | 
Ejemplo #1 Lee e imprime el contenido completo de un archivo CSV
<?php
$fila = 1;
if (($gestor = fopen("test.csv", "r")) !== FALSE) {
    while (($datos = fgetcsv($gestor, 1000, ",")) !== FALSE) {
        $numero = count($datos);
        echo "<p> $numero de campos en la línea $fila: <br /></p>\n";
        $fila++;
        for ($c=0; $c < $numero; $c++) {
            echo $datos[$c] . "<br />\n";
        }
    }
    fclose($gestor);
}
?>
Nota:
Esta función toma en cuenta los parámetros de loacalización. Si LANG es p.ej. en_US.UTF-8, los archivos codificados con un byte son leídos de forma errónea por esta función.