Как сделать fputcsv «эхо» данными

Мне нужно, чтобы функция fputscv записывала данные в браузер на лету вместо создания временного файла, сохраняя данные в этом файле и делая echo file_get_contents() . Помогите!!!

Обнаружено это на веб-сайте документации PHP, первый комментарий по ссылке на функцию:

 function outputCSV($data) { $outstream = fopen("php://output", 'w'); function __outputCSV(&$vals, $key, $filehandler) { fputcsv($filehandler, $vals, ';', '"'); } array_walk($data, '__outputCSV', $outstream); fclose($outstream); } 

И второй вариант:

 $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); 

Надеюсь это поможет!

Кстати, PHP-документы всегда должны быть вашей первой остановкой, пытаясь понять, что происходит. 🙂

Комментируя сайт PHP

 <?php $out = fopen('php://output', 'w'); fputcsv($out, array('this','is some', 'csv "stuff", you know.')); fclose($out); ?> 

Поскольку первоначальный искатель хотел «написать браузеру на лету», может быть стоит отметить (как и мой случай, и никто не упомянул об этом), что если вы хотите принудительно ввести имя файла и диалоговое окно с просьбой загрузить файл в браузере , вы должны установить правильные заголовки перед fputcsv чего-либо с помощью fputcsv :

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

http://www.codehive.net/PHP-Array-to-CSV-1.html предоставит вам функцию, которая соответствует требованиям не использовать файловую систему.