2011-01-14 8 views

ответ

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 всегда должны быть вашей первой остановкой, пытаясь понять, что происходит. :-)

+0

убирайся ... как я мог пропустить это !!! –

+1

outputCSV() с веб-сайта PHP не работает, вы даже вообще его не тестировали? –

+4

Я ответил на этот вопрос 4+ лет назад, может, что-то изменилось? Я не могу честно сказать, пробовал ли я это или нет, но подозреваю, что буду. Не стесняйтесь расширять то, что именно не работает вместо вашего пустого ответа, без каких-либо подробностей, и, возможно, я рассмотрю его дальше. –

2

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

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