wordpress csv export在输出中包含html

时间:2012-09-09 20:22:27

标签: wordpress csv

我正在尝试从WordPress中动态创建可下载的csv文件。要包含的数据是正确的,并且创建文件以便成功下载。但是,创建的csv文件包含模板HTML输出。

如果没有模板中的HTML,如何输出数据?

这是功能。使用sql查询正确填充数组,但结果与此相同。

function exportAsCSV (  ) {
  $csv = '';
  $header_array = array('Header 1', 'Header 2', 'Header 3');
  $data_array = array(
    array('Row 1 A', 'Row 1 B', 'Row 1 C'),
    array('Row 2 A', 'Row 2 B', 'Row 2 C'), 
  ); 

  $csv .= implode(', ', $header_array);
  $csv .= '\n';

  foreach($data_array as $row){
    $csv .= implode(', ', $row);
    $csv .= '\n';  
  } 


    $now = gmdate('D, d M Y H:i:s') . ' GMT';

    header('Content-Type: text/csv');
    header('Expires: ' . $now);

    header('Content-Disposition: attachment; filename="data.csv"');
    header('Pragma: no-cache'); 

    echo $csv; 
    exit();
}

该函数调用如下:

if(isset($_GET['export_data'])){
  ob_end_clean();   
  exportAsCSV();
} 

1 个答案:

答案 0 :(得分:1)

我明白了。更多级别的输出缓冲。现在,我致电ob_get_level()确定ob_end_clean()的次数。输出中不再有额外的HTML。