¿Qué es un archivo CSV?
Los CSV son archivos de "valores separados por comas" (de ahí su nombre), es un formato bien simple y práctico.
No tiene una documentación oficial, pero buscando en internet encontré el RFC 4180, “Common Format and MIME Type for Comma-Separated Values (CSV) Files”. Al contrario de muchos RFC, que son especificaciones completas de formatos y protocolos, este parece ser simplemente un resumen de las características de los csv, y un intento por documentar formalmente el formato.
Hay 5 reglas básicas que definen un archivo CSV, a saber:
- Cada campo se separa con una coma, al último de la fila no le sigue una coma
- No se toman en cuenta posibles espacios entre las comas separadoras.
- Cada fila se separa con un salto de línea (CRLF, aunque se soporta también LF)
- Los campos pueden o no estar delimitados por ” (necesario en particular cuando se necesita incluir una coma en el campo o un salto de línea).
- Si se necesita incluir comillas ", hay que duplicarlas: para que se tome "b" como el campo completo, hay que escribirlo como ""b""
Detalles
En caso de querer ponerlo para descargar, es bueno saber que el tipo MIME del formato es text/csv.
La codificación de caracteres por defecto se toma como US-ASCII, pero puede usarse el parámetro "charset" de la cabecera 'Content-Type' para especificar otra. Si no se usa "charset", el programa que trabaje con el archivo CSV deberá decidir qué codificación usa.
Este es el caso más común, ya que cuando uno abre el archivo con un programa como Excel u OpenOffice Calc, no existe una cabecera que indique el tipo MIME.
PHP provee 2 funciones, fputcsv y fgetcsv para manejo de estos archivos.
fgetcsv extrae los campos separados por comas de un archivo, línea por línea, mientras que fgetcsv permite hacer el proceso contrario.
En resumen, CSV es un formato simple y versátil, útil cuando se trata de transmitir información que no requiera un procesamiento complejo. En caso de requerirlo, quizás el formato XML o JSON sea más apropiado.







