I am telling you this function "fputcsv" is buggy ! Why am i saying this ? I created a csv file with say 4 lines
l1data1;l1data2;l1data3;l1data4
l2data1;l2data2;l2data3;l2data4
l3data1;l3data2;l3data3;l3data4
l4data1;l4data2;l4data3;l4data4
ok now i simple copy this file into another file using fgetcsv and fputcsv like the following :
$handle = fopen($nameFile, "r") or die("Cannot open file: ".$nameFile);
$temporaryFile = fopen($nameTempFile, "w") or die("Cannot open file: ".$nameTempFile);
while (($data = fgetcsv($handle,"", ";")) !== false) {
fputcsv($temporaryFile, $data,";");
}
fclose($temporaryFile);
fclose($handle);
output file :
l1data1;l1data2;l1data3;l1data4
l2data1;l2data2;"l2data3";l2data4
l3data1;l3data2;"l3data3";l3data4
l4data1;l4data2;"l4data3";l4data4
for some reason it is leaving double quotes in my third column for no obvious reason.
Now i do it with some old ways :
while ($data=fgets($handle)){
fputs($temporaryFile, $data);
}
Output is like expected :
l1data1;l1data2;l1data3;l1data4
l2data1;l2data2;l2data3;l2data4
l3data1;l3data2;l3data3;l3data4
l4data1;l4data2;l4data3;l4data4
Explain this !
EDIT :
CodeOffreArtemis;CodeOffre42C;CodeOffreSagic;ServiceType;Rate;TypeInterface;Techno;Libelles;CodeOffreCristal
G8R1_ACAB;ABE;;ACA;18;Eth;A;ACo Max2;test
G8R1_ACAC;ABE;ACABUS;ACA;18;Eth;A;ACo 20MMax;
G8R1_ACAD;AKE;ACAD;ACA;2MMAX;Eth;A;ACo 2MMax;
G8R1_ACANBA;WAB;;ACA;18;Eth;A;DSL Access Max2 ACA Nu ligne active;X201
G8R1_ACANBC;WAB;;ACA;18;Eth;A;DSL Access Max2 ACA Nu sur pré-câblée;X201
G8R1_ACANBI;WAB;;ACA;18;Eth;A;DSL Access Max2 ACA Nu ligne inactive;X201
G8R1_ACANBPORA;QAB;;ACA;18;Eth;A;DSL Access Max2 ACA Nu avec portabilité L active;X201
G8R1_ACANBR;WAB;;ACA;18;Eth;A;DSL Access Max2 ACA Nu Nd de routage;X201
G8R1_ACANCA;WAB;ACANB;ACA;18;Eth;A;DSL Access 20MMax ACA Nu ligne active;X201
first line is the header rest are the data.