2010-11-08 1 views
1

Использование PHP, я экспортирующей результаты запроса в CSV. Моя проблема возникает, когда данные содержат акцент; они не экспортируются правильно, и я теряю их все в сгенерированном файле.Преобразование данных, чтобы сохранить акцентами перед экспортом в CSV

Я использовал функцию utf8_decode() для ручной конвертации заголовков, и она отлично работала, но я не знаю, как ее использовать для массива результатов.

Любой человек может помочь мне, пожалуйста !?

result = db_query($sql); 
if (!$result) die('Couldn\'t fetch records'); 

$fp = fopen('php://output', 'w'); 
if ($fp && $result) { 
header("Content-type: application/vnd.ms-excel; charset=UTF-8"); 
header('Content-Disposition: attachment; filename="adp_enigmes_data.csv"'); 
header('Pragma: no-cache'); 
header('Expires: 0'); 
fputcsv($fp, $headerTitles); 

while ($row = $result->fetch_array(MYSQLI_NUM)) { 
    // When I use utf8_decode here, I don't get any results, so I have 
     // no idea where to use it! 
     fputcsv($fp, utf8_decode(array_values($row)), ',', '"'); 
} 
die; 
} 

ответ

12

Нанести utf8_decode ко всем элементам в результирующем строке, так просто array_map:

fputcsv($fp, array_map('utf8_decode',array_values($row)), ',', '"'); 
+0

вау мужчина Большое спасибо, работает отлично! –

+0

Только то, что мне нужно. – dchayka

 Смежные вопросы

  • Нет связанных вопросов^_^