function outputCSV($data) {
$outstream = fopen("php://output", 'w');
function __outputCSV(&$vals, $key, $filehandler){
fputcsv($filehandler, $vals, ',', '"');
}
array_walk($data, '__outputCSV', $outstream);
fclose($outstream);
}
function someFunctionInTheBigPHPFile() {
header("Content-type: text/csv");
header("Content-Disposition: attachment; filename=file.csv");
header("Pragma: no-cache");
header("Expires: 0");
$mydata = array(
array('data11', 'data12', 'data13'),
array('data21', 'data22', 'data23'),
array('data31', 'data32', 'data23'));
outputCSV($mydata);
exit;
}
输出 CSV 确实包含数据数组。问题是,这个数组与网页的其余部分一起显示,即调用此函数之前的所有内容以及之后的所有内容,尽管这两个函数是唯一处理任何 fopen 和写入文件的函数。
如何阻止网页的其余部分干扰?我只想要CSV中的数据数组..
编辑:我设法通过添加 exit; 来切断阵列之后的所有内容;但我仍然遇到整个网站显示在阵列之前的问题。