Exportar archivos CSV PHP usando fputcsv()
Exportar archivos CSV PHP usando fputcsv(). En este tutorial, vamos a exportar registros desde MySQL a un archivo CSV utilizando la función PHP fputcsv(). Sin embargo, al usar la función no necesitamos formatear los datos para exportarlos a un archivo .csv.
Exportar archivos CSV PHP usando fputcsv()
A continuación, veremos puntos claves acerca de este tema.
¿Qué es la función fputcsv()?
La función fputcsv() acepta una matriz de resultados de base de datos y un puntero de recurso de archivo. Esta matriz de resultados se convierte al formato CSV y se escribe en el archivo de .csv de destino con la referencia del puntero de archivo dado.
¿Como crear y descargar un fichero CSV?
PHP es un lenguaje muy flexible y usando algunas funciones y ciclos predeterminados podemos crear y descargar un archivo CSV con contenido de MySQL. Además, usaremos el ciclo WHILE y consultas SQL.
La sintaxis de esta función
fputcsv($file_pointer, $input_array, $delimiter = ',', $enclosure = '"');
Descripción del script:
En este código, estamos creando el puntero de archivo abriendo el flujo de salida PHP. Y luego, establecemos este puntero y la matriz de campos de base de datos en la función fputcsv(). Por lo tanto, se llamará a esta función después de establecer el encabezado con el tipo de contenido, la disposición y el nombre del archivo CSV.
<?php
$conn = mysqli_connect("localhost", "root", "test", "examples");
$filename = "toy_csv.csv";
$fp = fopen('php://output', 'w');
$query = "SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA='examples' AND TABLE_NAME='toy'";
$result = mysqli_query($conn,$query);
while ($row = mysqli_fetch_row($result)) {
$header[] = $row[0];
}
header('Content-type: application/csv');
header('Content-Disposition: attachment; filename='.$filename);
fputcsv($fp, $header);
$query = "SELECT * FROM toy";
$result = mysqli_query($conn, $query);
while($row = mysqli_fetch_row($result)) {
fputcsv($fp, $row);
}
exit;
?>
Descargando Fichero CSV con PHP
Al ejecutar el script se podrá descargar un fichero de extensión CSV y podemos ver el siguiente contenido.
"id","name","code","category","price","stock_count",
"9","Music Aeroplane","TOY#MA01","Music Toys","250","500",
"10","Power Rangers","TOY#BT01","Battery Toys","1000","100",
"11","Remote Car","TOY#RMT01","Remote Control Toys","280","800",
"12","Bubbles","TOY#WT01","Water Games","100","1000",
"13","Cricket Cards","TOY#CD01","Card Games","200","80",
"14","Basket Ball","TOY#BB01","Outdoor Toys","2000","500",
"15","Word Puzzles","TOY#PZ01","Puzzles","200","200",
"16","Water Gun","TOY#WG01","Water Games","100","1000",
Conclusión al usar fputcsv
Hemos logrado generar una descarga dinámica al usar la función fputcsv del PHP y puede usarse en cualquier consulta SQL a través de un ciclo.
Recordemos que al cargar el archivo se generará una descarga directamente desde el navegador web, por otro lado, el archivo generado estará dividido pro comas y puede visualizarse usando Excel.
Espero que este articulo les ayude en sus proyectos web y no se olviden de compartir en sus amigos y redes sociales.