Экспорт таблицы в csv файл с помощью php
Есть скрипт php, который реализует экспорт таблицы в SCV файл.Когда открываешь,выдает непонятные символы.Скорее всего проблема в кодировке,но я целый день бьюсь головой об стену и все попытки тщетны.
Сам скрипт:
$query = "SELECT id,producer,name,short,full,nval,price_v,price1_v,price2_v,price3_v FROM `ve_goods` WHERE producer='iptronic'";
$result = mysqli_query(DB::db(), $query);
$number_of_fields = mysqli_num_fields($result);
$headers = array();
for ($i = 0; $i < $number_of_fields; $i++) {
$headers[] = mysqli_field_name($result, $i);
}
$fp = fopen('php://output', 'w');
if ($fp && $result) {
header('Content-Type: text/csv; utf-8; windows-1251');
header('Content-Disposition: attachment; filename="export.csv"');
header('Pragma: no-cache');
header('Expires: 0');
fputcsv($fp, $headers);
while ($row = $result->fetch_array(MYSQLI_NUM)) {
fputcsv($fp, array_values($row));
}
die;
}
function mysqli_field_name($result, $field_offset)
{
$properties = mysqli_fetch_field_direct($result, $field_offset);
return is_object($properties) ? $properties->name : null;
}
Ответы (1 шт):
Автор решения: Vlad Gilubev
→ Ссылка
Добавил такую строчку кода и символы начали отлично отображаться
fputs($fp, $bom =( chr(0xEF) . chr(0xBB) . chr(0xBF) ));