Ce mémo a été publié le 6 octobre 2010 et peut contenir des informations qui peuvent être incomplètes, non mises à jour voir erronées du fait de son ancienneté.
N'hésitez pas à compléter votre recherche sur des articles plus récents.
Comment exporter en PHP un fichier texte (genre csv) au format UTF-8 ?
Lors de l’écriture de la ligne ou du fichier, utiliser la conversion utf8_encode :
1 |
fputs($fp,utf8_encode($csv_data)); |
Exemple complet de transformation d’un tableau en fichier CSV :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
<?php function export_csv($file, $data) { $filename_data = 'csv/' . $file; if (file_exists($filename_data)) { echo "<br />Le fichier $filename_data existe"; // Suppression du fichier unlink ($filename_data); echo "<br />Fichier effacé"; } if($fp = fopen($filename_data,'w')) { $csv_data = mise_en_forme_csv($data); fputs($fp,utf8_encode($csv_data)); fclose($fp); echo "<br />Fichier $filename_data créé"; } else { echo "<br />Probleme lors de la création du fichier d'export."; } } function mise_en_forme_csv($data) { $ligne_csv = ""; $ligne_csv = 'entete_1;entete_2;entete_3;entete_4;entete_5;entete_6;entete_7'; $ligne_csv .= $value . "rn"; foreach($data as $key_data=>$value_data) { $value = implode(';', $value_data); $value = preg_replace("/(rn|n|r)/", " ", $value); $ligne_csv .= $value . "rn"; } return $ligne_csv; } ?> |