2011-09-09 12 views
5

¿Alguien sabe de una función, o un truco genial, para obtener el valor de retorno de fputcsv en lugar de escribir la salida en un archivo?Obtener el valor de retorno de fputcsv

Estoy tratando de codificar un archivo como un archivo delimitado por tabuladores, pero mi cliente quiere una de las columnas codificadas en csv (por lo que 1 columna de valores csv en un archivo delimitado por tabulaciones). No es ideal, estoy de acuerdo, pero en este momento solo necesito hacerlo.

Gracias!

Respuesta

8

Desvergonzadamente copia de un user note en la página de documentación:

$buffer = fopen('php://temp', 'r+'); 
fputcsv($buffer, $data); 
rewind($buffer); 
$csv = fgets($buffer); 
fclose($buffer); 

// Perform any data massaging you want here 
echo $csv; 

Todo esto debería resultar familiar, excepto tal vez php://temp.

+1

Aceptamos esta respuesta porque es más completa. ¡Funciona genial! Sin embargo, es bueno tener en cuenta que asegúrese de 'recortar' después de' fgets' para deshacerse de la nueva línea que 'fputcsv' agrega. –

3
$output = fopen('php://output', 'w'); 
fputcsv($output, $line); 
fclose($output); 

O pruebe uno de los otros supported wrappers, como php://memory si no desea dar salida directamente.

Cuestiones relacionadas