Browse Source

exporter_csv() : une option charset permet maintenant de definir le charset explicitement, independamment du delimiteur

si le charset n'est pas explicite, il est selectionne comme avant en fonction du delimiteur
v3
Cerdic 2 years ago
parent
commit
9b1c0f2351
  1. 11
      inc/exporter_csv.php

11
inc/exporter_csv.php

@ -73,6 +73,7 @@ function exporter_csv_ligne($ligne, $delim = ',', $importer_charset = null) {
* string $delim : delimiteur
* array $entetes : tableau d'en-tetes pour nommer les colonnes (genere la premiere ligne)
* bool $envoyer : pour envoyer le fichier exporte (permet le telechargement)
* string $charset : charset de l'export si different de celui du site
* @return string
*/
function inc_exporter_csv_dist($titre, $resource, $options = []) {
@ -93,6 +94,7 @@ function inc_exporter_csv_dist($titre, $resource, $options = []) {
'delim' => ', ',
'entetes' => null,
'envoyer' => true,
'charset' => null,
];
$options = array_merge($default_options, $options);
@ -112,8 +114,15 @@ function inc_exporter_csv_dist($titre, $resource, $options = []) {
} else {
$extension = 'xls';
# Excel n'accepte pas l'utf-8 ni les entites html... on transcode tout ce qu'on peut
$importer_charset = $charset = 'iso-8859-1';
$charset = 'iso-8859-1';
}
// mais si une option charset est explicite, elle a la priorite
if (!empty($options['charset'])) {
$charset = $options['charset'];
}
$importer_charset = (($charset === $GLOBALS['meta']['charset']) ? null : $charset);
$filename = "$filename.$extension";
$output = '';

Loading…
Cancel
Save