Мне нужен способ, чтобы функция fputscv
записывала данные в браузер на лету вместо создания временного файла, сохраняя данные в этом файле и делая echo file_get_contents()
. Помогите!!!Как сделать fputcsv «эхо» данных
25
A
ответ
37
Нашел на DOCS сайте 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 всегда должны быть вашей первой остановкой, пытаясь понять, что происходит. :-)
-2
http://www.codehive.net/PHP-Array-to-CSV-1.html предоставит вам функцию, которая соответствует требованиям, не использующим файловую систему.
14
<?php
$out = fopen('php://output', 'w');
fputcsv($out, array('this','is some', 'csv "stuff", you know.'));
fclose($out);
?>
2
Как оригинальный Аскер хотел «писать в браузер на лету», может быть, стоит отметить (как это было в моем случае, и никто не говорил об этом), что если вы хотите, чтобы файл имя и диалоговое окно с запросом, чтобы загрузить файл в браузере, необходимо установить правильные заголовки перед выводом ничего с fputcsv
:
header('Content-Type: text/csv; charset=utf-8');
header('Content-Disposition: attachment; filename=myFile.csv');
убирайся ... как я мог пропустить это !!! –
outputCSV() с веб-сайта PHP не работает, вы даже вообще его не тестировали? –
Я ответил на этот вопрос 4+ лет назад, может, что-то изменилось? Я не могу честно сказать, пробовал ли я это или нет, но подозреваю, что буду. Не стесняйтесь расширять то, что именно не работает вместо вашего пустого ответа, без каких-либо подробностей, и, возможно, я рассмотрю его дальше. –