function generate_pdf($array)
{
header(\'Content-Type: text/csv\');
header(\'Content-Disposition: attachment; filename="sample.csv"\');
$fp = fopen(\'php://output\', \'wb\');
foreach ( $array as $line ) {
$val = explode(",", $line);
fputcsv($fp, $val);
}
fclose($fp);
}
$array = array(
\'aaa,bbb,ccc,dddd\',
\'123,456,789\',
\'"aaa","bbb"\'
);
generate_pdf($array);
这是我生成正确csv文件的代码,但当我在自定义插件中实现它时,它会生成编码。csv文件
SO网友:Tony Djukic
当我尝试做类似的事情时,我遇到了同样的问题,即生成CSV的页面的HTML代码将包含在CSV中,并与我实际需要的数据混合在一起。
在搜索和阅读以及阅读和搜索之后,我发现了两件事ob_end_clean();
在我开始输出CSV的内容之前。ob_end_clean()
是“输出缓冲区结束/清理”https://www.php.net/manual/en/function.ob-end-clean.php
我还补充道die()
在CSV输出代码的末尾,退出进程。您还可以使用exit()
.
function generate_pdf( $array ) {
ob_end_clean(); //ADD THIS LINE
header( \'Content-Type: text/csv\' );
header(\'Content-Disposition: attachment; filename="sample.csv"\');
$fp = fopen( \'php://output\', \'wb\' );
foreach( $array as $line ) {
$val = explode( \',\', $line );
fputcsv( $fp, $val );
}
fclose( $fp );
die(); //add this as well
}