2

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();
} 
4

1 に答える 1

1

私はそれを考え出した。より多くのレベルの出力バッファリング。今、私はob_get_level()何回までを決定するために呼び出しますob_end_clean()。出力に余分な HTML が含まれなくなりました。

于 2012-09-11T02:36:34.370 に答える