2011-01-14 20 views

Respuesta

37

encontrado esto en el sitio web de documentación de PHP, primer comentario debajo de la referencia de funciones:

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!

BTW los documentos PHP siempre deben ser su primera parada cuando intente resolver las cosas. :-)

+0

Drat ... ¿cómo podría perder esa !!! –

+1

el outputCSV() del sitio web de PHP no funciona, ¿incluso lo has probado? –

+4

Respondí esta pregunta hace más de 4 años, ¿tal vez algo ha cambiado? Honestamente, no puedo decir si lo intenté o no, pero sospecho que lo hubiera hecho. Siéntase libre de ampliar exactamente lo que no funciona en lugar de su respuesta vacía sin detalles, y tal vez lo investigue más a fondo. –

2

A medida que el autor de la pregunta original, quería "escribir en el navegador sobre la marcha", tal vez vale la pena señalar (como era mi caso y nadie lo mencionó) que si desea forzar un archivo nombre y un cuadro de diálogo que pide descargar un archivo en el navegador, debe configurar los encabezados apropiados antes de dar salida a cualquier cosa con fputcsv:

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