[RESOLU] Fputcsv - supprimer enclosure

Petit nouveau ! | 5 Messages

23 sept. 2015, 21:27

Bonjour à tous,

Je souhaiterais supprimer l'enclosure sur mon export csv.
Dans la doc il est dit que fputcsv prend le délimiteur et l’encadrement mais qu'ils sont optionnels.
Voici mon code :

Code : Tout sélectionner

$today = date("mdy"); $csv = $today.'_email.csv'; $delimiter = chr(9); if (file_exists("/email_csv/".$csv)) { $file = fopen("/email_csv/".$csv, "a"); $file->setCsvControl($delimiter); fputcsv($file, $val, $delimiter); }else { $file = fopen("/email_csv/".$csv, "a"); fputcsv($file, $tete, $delimiter); fputcsv($file, $val, $delimiter); } fclose($file); }
Merci d'avance pour vos réponses,

ynx
Mammouth du PHP | 586 Messages

24 sept. 2015, 15:45

Salut,

Le délimiteur et l'encadrement sont effectivement optionnels mais par défaut ils sont définis respectivement avec les valeurs , et "
Si tu veux modifier cette valeur par défaut, il faut donc les renseigner dans ton appel à fputcsv (comme tu as fait pour le délimiteur). Par exemple pour supprimer l'enclosure :
fputcsv($file, $val, $delimiter, ''); // paramètre $enclosure définie en tant que chaine vide
Bonne journée

Petit nouveau ! | 5 Messages

24 sept. 2015, 16:06

Merci pour ta réponse mais cela ne marche pas.

Voici la solution que j'ai trouvé :

Code : Tout sélectionner

$today = date("mdy"); $csv = $today.'_email.csv'; $delimiter = "\t"; $enclosure = "*"; if (file_exists("/email_csv/".$csv)) { $file = fopen("/email_csv/".$csv, "a"); fputcsv($file, $val, $delimiter, $enclosure); }else { $file = fopen("/email_csv/".$csv, "a"); fputcsv($file, $tete, $delimiter, $enclosure); fputcsv($file, $val, $delimiter, $enclosure); } fclose($file); } $lecsv = "/email_csv/".$csv; //Remplacement des '*' en '' $replace = str_replace("*", "", file_get_contents($lecsv) ); file_put_contents($lecsv, $replace);