Necesito una manera de hacer que la función fputscv
escriba datos en el navegador sobre la marcha en lugar de crear un archivo temporal, guardando datos en ese archivo y haciendo un echo file_get_contents()
. ¡¡¡Ayuda!!!Cómo hacer que fputcsv "echo" los datos
Respuesta
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. :-)
http://www.codehive.net/PHP-Array-to-CSV-1.html le dará una función que se ajuste a los requisitos de no utilizar el sistema de archivos.
<?php
$out = fopen('php://output', 'w');
fputcsv($out, array('this','is some', 'csv "stuff", you know.'));
fclose($out);
?>
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');
- 1. php fputcsv y que encierran campos
- 2. códigos fputcsv y newline
- 3. ¿Cómo puedo cambiar los finales de línea utilizados por fputcsv?
- 4. Ajustar los valores CSV generados por PHP fputcsv() con ""
- 5. Ajax PHP Jquery - echo atrás datos
- 6. ¿Cómo hacer que echo interprete escapes de barra invertida y no imprimir una nueva línea final?
- 7. Echo off pero se muestran los mensajes
- 8. ¿Cómo hacer que los SVM jueguen bien con los datos faltantes en scikit-learn?
- 9. ¿Cómo escribo caracteres que no sean ASCII utilizando echo?
- 10. Obtener el valor de retorno de fputcsv
- 11. cómo estilo php echo output
- 12. cuando intento echo $ 10 Conviene convierte echo $ 1 0
- 13. PowerShell "echo on"
- 14. Cómo echo en PHP, etiquetas html
- 15. xargs - if condition and echo {}
- 16. ¿Cómo hacer que los miembros de struct sean privados?
- 17. Cómo hacer que los mensajes django estilo StackOverflow?
- 18. ¿Cómo puedo hacer que AngularJS vuelva a ejecutar una función cada vez que cambian los datos que utiliza?
- 19. Cómo hacer que NLog escriba en la base de datos
- 20. ¿Cómo hacer que los contratos de código funcionen con la deserialización de contratos de datos?
- 21. C# Array, ¿Cómo hacer que los datos en una matriz sean distintos entre sí?
- 22. ¿Cómo hacer que IE ingrese los datos de FORMULARIO en UTF-8?
- 23. cmake: Cómo hacer un script para copiar los archivos de datos que acompañan a mi programa
- 24. Diferencia entre "echo 'hello'; ls" vs "echo 'hello' && ls"?
- 25. echo that shell-escapes arguments
- 26. Cómo hacer que strpos sea insensible
- 27. ¿Cómo echo el id a una carroza?
- 28. PHP Echo Line Breaks
- 29. ¿Cómo echo desde System.Web.HttpPostedFileBase a System.Web.HttpPostedFile?
- 30. MSBuild echo task?
Drat ... ¿cómo podría perder esa !!! –
el outputCSV() del sitio web de PHP no funciona, ¿incluso lo has probado? –
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. –