fputcsv enclosure

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : fputcsv enclosure

Re: fputcsv enclosure

par doublemetre » 09 juin 2024, 04:24

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.

Re: fputcsv enclosure

par @rthur » 08 juin 2024, 16:29

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

fputcsv enclosure

par doublemetre » 08 juin 2024, 14:12

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