簡體   English   中英

如何在使用 php 導出到 csv 之前刪除 html 標簽?

[英]How to remove html tags before export to csv using php?

我正在嘗試使用phpMysql獲取記錄后將記錄導出到 csv 文件。 我正在遵循這個答案說明,它對我來說工作正常。

function array2csv(array &$array)
{
   if (count($array) == 0) {
     return null;
   }
   ob_start();
   $df = fopen("php://output", 'w');
   fputcsv($df, array_keys(reset($array)));
   foreach ($array as $row) {
      fputcsv($df, $row);
   }
   fclose($df);
   return ob_get_clean();
}

function download_send_headers($filename) {
    header("Content-Type: text/csv");
    header("Content-Disposition: attachment; filename={$filename}");
    // Disable caching
    header("Cache-Control: no-cache, no-store, must-revalidate"); // HTTP 1.1
    header("Pragma: no-cache"); // HTTP 1.0
    header("Expires: 0"); // Proxies
}
download_send_headers("data_export_" . date("Y-m-d") . ".csv");
echo array2csv($s);
die();

但問題是這個功能還添加了 html 材料( Header Content like title and meta title etc )以及記錄,所以任何人都可以指導我如何防止為 csv 文件添加標題內容。 如果有人指導我,我將不勝感激。

在此處輸入圖片說明

我已經寫了ob_get_clean(); 在您編寫ob_start(); 它解決了。
我發現在輸出到 CSV 之前進行清理會插入一個干凈的數據,它對我有用。

你可以像這樣改變你的功能:

function array2csv(array &$array)
{
   if (count($array) == 0) {
     return null;
   }
   ob_start();
   $df = fopen("php://output", 'w');
   fputcsv($df, array_keys(reset($array)));
   foreach ($array as $row) {
      $data = strip_tags($row); // strip html tags here
      if(!empty($data)){
      fputcsv($df, $data);
      }
   }
   fclose($df);
   return ob_get_clean();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM