Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Evitar que se siga escribiendo información en archivo csv

Estas en el tema de Evitar que se siga escribiendo información en archivo csv en el foro de PHP en Foros del Web. Buen día a todos, estoy tratando de exportar información de una consulta de la base de datos a un archivo csv con fputcsv, todo sale ...
  #1 (permalink)  
Antiguo 05/05/2015, 09:54
Avatar de chronos682  
Fecha de Ingreso: febrero-2004
Ubicación: Tunja - Boyacá - Colombia
Mensajes: 627
Antigüedad: 20 años, 5 meses
Puntos: 69
Evitar que se siga escribiendo información en archivo csv

Buen día a todos, estoy tratando de exportar información de una consulta de la base de datos a un archivo csv con fputcsv, todo sale muy bien, el problema es que a pesar de que luego de que termino de cargar la información en el archivo llamo a la función fclose, en el archivo csv se me siguen agregando todas las cadenas que se escriben con echo(). Cómo puedo cerrar definitivamente el archivo csv para que no se siga escribiendo?

Código:
        header('Content-Type: text/csv; charset=utf-8');
	header('Content-Disposition: attachment; filename=data.csv');

	$output = fopen('php://output', 'w');

	fputcsv($output, Aquí array de información,";");

	fclose($output);  Aquí ya debería cerrarse el archivo pero sigue 
        escribiendo todos los echo que hayan más abajo
Gracias por su ayuda.
__________________
Si te gustó la respuesta dale +1

HERNÁN G. SIABATO M.
[email protected]
  #2 (permalink)  
Antiguo 05/05/2015, 10:48
Avatar de chronos682  
Fecha de Ingreso: febrero-2004
Ubicación: Tunja - Boyacá - Colombia
Mensajes: 627
Antigüedad: 20 años, 5 meses
Puntos: 69
Respuesta: Evitar que se siga escribiendo información en archivo csv

Ya encontré la solución al problema. Por si a alguien le sirve esta es la forma correcta de escribir el archivo:

Código:
        $output = fopen( 'php://temp/maxmemory:'. (12*1024*1024) , 'r+' );
        fputcsv($output, Aqui el array a escribir,";");
	rewind($output);
	$buffer=stream_get_contents($output);
	fclose($output);
	header('Content-Type: text/csv; charset=utf-8');
	header('Content-Disposition: attachment; filename=data.csv');
	header('Content-Length: '. strlen($buffer));
	echo $buffer;
	exit;
Se puede dar por solucionado.
__________________
Si te gustó la respuesta dale +1

HERNÁN G. SIABATO M.
[email protected]

Etiquetas: csv
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:55.