0
我正在使用下面的代碼導出多維數組。我使用笨框架(2.1.0版)從數組導出csv文件
問題:
我沒有任何雙引號/陣列單引號,但在CSV文件中某些領域有雙引號。
每一個CSV文件給我的前兩個空格,然後內容,我可以看到
CODE:
function array_to_csv($array, $download = "") {
if ($download != "") {
header('Content-Type: text/csv');
header('Content-Disposition: attachement; filename="'.$download.
'"');
header("Pragma: no-cache");
header("Expires: 0");
}
ob_start();
$f = fopen('php://output', 'w') or show_error("Can't open php://output");
$n = 0;
foreach($array as $line) {
$line = str_replace('"', '', $line); //Try to resolve first problem but it doesn't work for me.
$n++;
if (!fputcsv($f, $line)) {
show_error("Can't write line $n: $line");
}
}
fclose($f) or show_error("Can't close php://output");
$str = ob_get_contents();
ob_end_clean();
if ($download == "") {
return $str;
} else {
echo $str;
}
}
如果在上面的代碼中需要進行任何代碼優化以使其更快,請給我建議 –
對我來說,你看起來過於複雜了一點。爲什麼所有與ob_start等混亂?一旦你發送了你的頭文件,你可以直接寫每行到php://輸出。我看不出爲什麼你在開始時會出現空行,儘管 –