[英]How to remove html tags before export to csv using php?
我正在嘗試使用php
從Mysql
獲取記錄后將記錄導出到 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.