Page 1 sur 1

fputcsv enclosure

Posté : 08 juin 2024, 14:12
par doublemetre
Bonjour, je rencontre un problème avec le paramètre de fputcsv "enclosure" si je mets rien ou ceci "\"", j'ai un guillemet en début en fin de ligne, si je mets ceci " " j'ai un espace en début et fin de linge et à l'intérieur de la ligne les espaces sont doublé.

j'ai surement loupé quelques chose.

voici le code
<?php

 /* Fichier à supprimer */
   $fichier = "termine.csv";

 if( file_exists ($fichier))
     unlink( $fichier ) ;

$filename = "all.csv";
$fileRead = fopen($filename, 'r');
$fileWrite = fopen("termine.csv", "w");
$sep = "|";

  if (!$fileRead || !$fileWrite) {
    echo "Erreur d'ouverture du fichier de lecture et/ou d'écriture avec $filename.";
   
  }
  
      
  fputs($fileWrite,  $data= chr(0xEF) . chr(0xBB) . chr(0xBF));

  while (($data = fgetcsv($fileRead, 0, "|")) !== FALSE) {

  
  
   // le commencement des colonne est 0]);
    fputcsv($fileWrite, array(. $data[54].  $sep. $data[57]. $sep . $data[28]  . ".jpg" ) ,"|", "\"", "\\", "\n");
	
  }

  fclose($fileWrite);
  fclose($fileRead);

echo "copie terminée merci"; 
  ?>
en gros une ligne donne ceci.
"SUISSE|10BR15560R150T-5050|3286341380019|43|74,77|BRIDGESTONE|155/60R 15 74T TL T-005|non|été|155|60|15|74|T|TURANZA T005||C|A|070B|5,7|6263.jpg"
merci d'avance pour votre aide

Re: fputcsv enclosure

Posté : 08 juin 2024, 16:29
par @rthur
Bonjour,

Tu renseignes mal le 2ème paramètre de fputcsv()
Regarde l'exemple de la doc, ça doit être un tableau de tableau, c'est à dire un tableau de chaque ligne et pour chaque ligne un tableau de chaque champ.
https://www.php.net/manual/en/function.fputcsv.php

Re: fputcsv enclosure

Posté : 09 juin 2024, 04:24
par doublemetre
Bonjour merci pour votre réponse, malgré la doc je n'ai pas compris un tableau de tableau.
cependant le 2ème paramètre "\t", me donne un bon résultat et le fichier csv est maintenant utilisable, si je trouve pas mieux je m'en contenterai.