php example 如何使fputcsv“回顯”數據




phpexcel csv (4)

我需要一種方法使fputscv函數fputscv向瀏覽器寫入數據,而不是創建臨時文件,將數據保存到該文件中並執行echo file_get_contents()


由於最初的提問者想要“即時寫入瀏覽器”,如果你想強制一個文件名和一個要求在瀏覽器中下載文件的對話框,也許值得注意(就像我的情況一樣,沒有人提到它) ,在使用fputcsv輸出任何內容之前,必須設置正確的標題:

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


通過對PHP網站的評論

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

在PHP docs網站上找到這個,首先在函數參考下發表評論:

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文檔應該始終是您嘗試解決問題的第一站。 :-)





export-to-csv