hola
Published 9:34 by with 0 comment

Creación de archivos descargables CSV usando PHP

Creación de archivos descargables CSV usando PHP


CSV (valores separados por comas) es el formato más amplio apoyo para la transferencia de datos tabulares entre aplicaciones. La capacidad de exportar datos en formato CSV es una característica útil para muchos programas, y se está convirtiendo cada vez más común en las aplicaciones web. Esta página explica cómo usar PHP para crear archivos CSV, y cómo asegurar que el navegador del visitante ofrece para descargar el archivo en lugar de mostrarla.

El código de

El código siguiente se supone que los datos que se exportan son almacenados en una base de datos MySQL, pero puede ser fácilmente modificado para trabajar con otras fuentes de datos, y por lo tanto sirve como plantilla en general:
----------------------
 // output headers so that the file is downloaded rather than displayed
header('Content-Type: text/csv; charset=utf-8');
header('Content-Disposition: attachment; filename=data.csv');

// create a file pointer connected to the output stream
$output = fopen('php://output', 'w');

// output the column headings
fputcsv($output, array('Column 1', 'Column 2', 'Column 3'));

// fetch the data
mysql_connect('localhost', 'username', 'password');
mysql_select_db('database');
$rows = mysql_query('SELECT field1,field2,field3 FROM table');

// loop over the rows, outputting them
while ($row = mysql_fetch_assoc($rows)) fputcsv($output, $row);


------------------
// Cabeceras de salida para que el archivo se descarga y no representada
header ('Content-Type: text / csv; charset = utf-8');
header ('Content-Disposition: attachment; filename = data.csv');

// Crear un puntero de archivo conectado a la corriente de salida
$ = salida fopen ('php: // output', 'w');

// salida de los títulos de las columnas
fputcsv ($ salida, array ('Columna 1 "," Columna 2 "," Columna 3'));

// Recuperar los datos
mysql_connect ("localhost ',' nombre de usuario ',' contraseña ');
mysql_select_db ('base de datos');
$ Filas = mysql_query ("SELECT campo1, campo2, field3 FROM table ');

// Bucle sobre las filas, la salida de ellas
while ($ row = mysql_fetch_assoc ($ filas)) fputcsv ($ salida, $ fila);
La cadena 'data.csv' en la línea 3 es el nombre que el navegador le sugerirá para el archivo descargado. El literal de matriz en la línea 9 contiene los títulos de las columnas; esta línea se debe omitir por completo si usted no desea incluir los encabezados de columna. Las cadenas en líneas 12-14 se deben cambiar los parámetros de conexión correspondientes y cadena de consulta de la base de datos. En una aplicación real los parámetros de conexión de base de datos deben ser definidos como constantes en un archivo de configuración independiente.

¿Cómo funciona?

El código tiene que decirle al navegador que se está produciendo un archivo CSV y que el archivo debe ser ofrecido para su descarga, y no aparece en el navegador. Línea 2 produce una cabecera HTTP decirle al navegador que el tipo MIME del contenido es texto / csv, el tipo oficial MIME para archivos CSV.

Línea 3 produce un encabezado "Content-Disposition '. La cabecera Content-Disposition se define en el RFC 2183 y fue destinado a ser utilizado en los correos electrónicos, pero también fue adoptado por los navegadores web. En navegadores web el valor 'apego' indica al navegador que ofrecerá el archivo para su descarga con el nombre sugerido - el archivo de otro modo podría mostrarse en la ventana del navegador como si fuera texto normal.

PHP 5.1 introdujo la función fputcsv, que da salida a una serie de datos en el fichero apuntado como valores separados por comas. Debido fputcsv sólo puede escribir en el archivo punteros, la línea 6 se abre el flujo de salida como si se tratara de un archivo. Línea 9 emite entonces encabezados de columna, mientras que la línea 17 bucles más de las filas de datos y les da salida.
      edit

0 comentarios:

Publicar un comentario

Animate y dejanos un comentario.