Я использую ниже код для экспорта многомерного массива. Я использую рамки CodeIgniter (2.1.0 Version)Экспорт csv-файла из массива
Проблемы:
У меня нет каких-либо двойные кавычки/одиночные кавычки в массив, но в файле CSV некоторые поля имеют двойные кавычки.
Каждый файл CSV дать мне первые две заготовки линии, то содержимое можно увидеть
КОД:
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: // после того, как вы отправили свои заголовки. Я не понимаю, почему вы получаете пустые строки в начале, но –