У меня есть простой CSV-файл, который сгенерирован, содержащий иностранные символы. Я отметил, что если я не включу знак байтового заказа, что иностранные символы не отображаются должным образом в Excel (но они выглядят отлично, когда присутствует спецификация).Добавление спецификации в файл CSV с использованием fputcsv
Как добавить спецификацию в начало файла при его создании? Я попытался следующие, и это не работает: -/
function processForm($competition, $competitionEntry) {
$BOM = "\xEF\xBB\xBF"; // UTF-8 BOM
$filename = $competition->ID.".csv";
$file = "entries/".$filename;
$fields = array_keys($competitionEntry);
$submittedForm = $competitionEntry;
if(file_exists($file)) {
$fp = fopen($file, 'a');
if($fp &&
fputcsv($fp, $submittedForm) &&
fclose($fp)) {
return true;
}
} else { // CREATE NEW FILE
$fp = fopen($file, 'w');
if($fp &&
fputcsv($fp, $BOM) && // WRITE BOM TO FILE
fputcsv($fp, $fields) &&
fputcsv($fp, $submittedForm) &&
fclose($fp)) {
return true;
}
}
return false;
}
[fwrite()] (http://www.php.net/manual/en/function.fwrite.php) $ BOM в файл сразу после вашего 'fopen()' (хотя это и не очень хорошая идея в вашем append) .... не используйте 'fputcsv()', чтобы попытаться написать его –
@MarkBaker Если вы хотите вставить это в ответ, я соглашусь с ним. Это сработало. В противном случае я сделаю это позже. Дай мне знать. –