如何使 fputcsv “回显”数据

2022-08-30 13:50:49

我需要一种方法来使 fputscv 函数动态地将数据写入浏览器,而不是创建一个临时文件,将数据保存到该文件中并执行.echo file_get_contents()


答案 1

在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

通过在 PHP 网站上的评论

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

推荐