2011-09-09 18 views
5

Czy ktoś zna funkcję lub fajną sztuczkę, aby uzyskać wartość zwracaną fputcsv zamiast zapisywać dane wyjściowe do pliku?Uzyskaj wartość zwracaną fputcsv

Próbuję zakodować plik jako plik rozdzielany tabulatorami, ale mój klient chce jedną z kolumn zakodowanych w pliku CSV (a więc 1 kolumnę wartości csv w pliku rozdzielanym tabulatorami). Nie jest idealny, zgadzam się, ale w tym momencie muszę po prostu to zrobić.

Dzięki!

Odpowiedz

8

Bezwstydnie kopiowanie z user note na stronie dokumentacji:

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

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

Wszystko to powinno wyglądać znajomo, może z wyjątkiem php://temp.

+1

Zaakceptowano tę odpowiedź, ponieważ jest bardziej kompletna. działa świetnie! Dobrze jednak zauważyć, upewnij się, że "przycinałeś" po "fgets", aby pozbyć się nowej linii dodanej przez "fputcsv"! –

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

Albo spróbować jednego z drugim supported wrappers, jak php://memory jeśli nie chcesz bezpośrednio do wyjścia.

Powiązane problemy