Cómo hacer que fputcsv “echo” los datos

Necesito una forma de hacer que la función fputscv escriba datos en el navegador sobre la marcha en lugar de crear un archivo temporal, guardar datos en ese archivo y hacer un echo file_get_contents() . ¡¡¡Ayuda!!!

Encontré esto en el sitio web de documentos PHP, primero comente bajo la referencia de función:

 function outputCSV($data) { $outstream = fopen("php://output", 'w'); function __outputCSV(&$vals, $key, $filehandler) { fputcsv($filehandler, $vals, ';', '"'); } array_walk($data, '__outputCSV', $outstream); fclose($outstream); } 

Y una segunda opción:

 $csv = fopen('php://temp/maxmemory:'. (5*1024*1024), 'r+'); fputcsv($csv, array('blah','blah')); rewind($csv); // put it all in a variable $output = stream_get_contents($csv); 

¡Espero que esto ayude!

Por cierto, los documentos PHP siempre deben ser su primera parada cuando intente resolver las cosas. 🙂

Por un comentario en el sitio PHP

 < ?php $out = fopen('php://output', 'w'); fputcsv($out, array('this','is some', 'csv "stuff", you know.')); fclose($out); ?> 

Como el asker original quería “escribir en el navegador sobre la marcha”, tal vez valga la pena señalar (como fue mi caso y nadie lo mencionó) que si desea forzar un nombre de archivo y un diálogo solicitando descargar un archivo en el navegador , debe establecer los encabezados adecuados antes de fputcsv cualquier cosa con fputcsv :

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

http://www.codehive.net/PHP-Array-to-CSV-1.html le dará una función que se ajusta a los requisitos de no usar el sistema de archivos.