Cree una matriz de matrices para alimentar la función CSV
Frecuentes
Visto 1,156 equipos
1
Estoy tratando de crear un CSV a partir de una consulta y necesito que los datos se ajusten al siguiente formato:
header("Content-type: text/csv");
header("Content-Disposition: attachment; filename=file.csv");
header("Pragma: no-cache");
header("Expires: 0");
$array = array(
array("data11", "data12", "data13"),
array("data21", "data22", "data23"),
array("data31", "data32", "data23"));
outputCSV($array);
Estoy acostumbrado a agregar datos como este:
while ($row = mysql_fetch_array($result)){
$values[] = $row['value'];
}
Como puedo pasar outputCSV
una matriz adecuada?
3 Respuestas
5
function outputCSV($rows, $fieldNames = array())
{
if ($fp = fopen('php://output', 'w')) {
if ($fieldNames) {
fputcsv($fp, $fieldNames);
}
foreach ($rows as $row) {
fputcsv($fp, $row);
}
fclose($fp);
}
}
contestado el 22 de mayo de 12 a las 21:05
Puedes usar el STDOUT
constante en lugar de abrir/cerrar php://output
. Ver php.net/manual/en/features.commandline.io-streams.php - huevo
@eggyal: Hacer no utilizan el STDOUT
ya que pasa por alto los búferes de salida. En su lugar, utiliza php://output
- webbiedave
¡Yo no era consciente de eso! ¿Puedes citar una referencia? Todo lo que puedo encontrar es Se recomienda que simplemente use las constantes STDIN
, STDOUT
y STDERR
en lugar de abrir flujos manualmente con estos contenedores. - huevo
Simplemente compruébelo usted mismo ejecutando esto en CLI: ob_start(); echo "abc"; fwrite(STDOUT, "def"); echo ob_get_clean();
- webbiedave
0
$values = array();
while ($row = mysql_fetch_array($result)) {
$values[] = $row;
}
outputCSV($values);
contestado el 22 de mayo de 12 a las 21:05
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas php mysql csv or haz tu propia pregunta.
Si solo quiere un CSV de datos de MySQL, ¿por qué no usar
SELECT ... INTO OUTFILE
? - eggyalEn realidad no sabía nada de eso, bastante útil. Sin embargo, simplifiqué mi pregunta y necesito tener la capacidad de hacer cosas con los datos, por lo que no estoy seguro de que sea la mejor solución para mí. - Chords