Escape komma i output til csv-fil
Hejsa,Jeg bruger nedenstående script til at lave udtræk fra mysql til en csv-fil. Mit problem er at der er kommaer i noget af teksten fra mysql, og dermed forskydes dataene i csv-filen. Jeg formoder, jeg skal escape kommaerne, så det ikke opfattes som et 'næste-felt'-komma.
How to?
<?php
$list = array ('id,navn,firma,titel,adresse,postnummer,bynavn,telefon,email,kundenummer,mobil,fabrikat,model,ansatte,pauseindtil,leveringsdato,produktnavn,forhandlernavn,forhandlertelefon,oprettet,trybuystatus');
$f_produkter = mysql_query("SELECT trybuyemner.id,trybuyemner.navn,trybuyemner.firma,trybuyemner.titel, trybuyemner.adresse,trybuyemner.postnummer,postnumre.bynavn,trybuyemner.telefon,trybuyemner.email,forhandler.kundenummer,trybuyemner.mobiltelefon,trybuyemner.telefonfabrikat,trybuyemner.telefonmodel,trybuyemner.antalansatte,IF(trybuyemner.pausedato>0,FROM_UNIXTIME( trybuyemner.pausedato, '%d.%m.%Y'),NULL) AS pausedato ,IF(trybuyemner.leveringdato>0,FROM_UNIXTIME( trybuyemner.leveringdato, '%d.%m.%Y'),NULL) AS leveringdato, produkt.navn AS produktnavn, forhandler.navn AS forhandlernavn, forhandler.telefon AS forhandlertelefon, FROM_UNIXTIME( trybuyemner.oprettet, '%d.%m.%Y' ) AS oprettet, trybuyemner.trybuystatus FROM trybuyemner LEFT JOIN produkt ON trybuyemner.produkt = produkt.id LEFT JOIN forhandler ON trybuyemner.forhandler = forhandler.id LEFT JOIN postnumre ON postnumre.postnr=trybuyemner.postnummer") or die (mysql_error());
while($d_produkter = mysql_fetch_array($f_produkter))
{
array_push ($list, "$d_produkter[0],$d_produkter[1],$d_produkter[2],$d_produkter[3],$d_produkter[4],$d_produkter[5],$d_produkter[6],$d_produkter[7],$d_produkter[8],$d_produkter[9],$d_produkter[10],$d_produkter[11],$d_produkter[12],$d_produkter[13],$d_produkter[14],$d_produkter[15],$d_produkter[16],$d_produkter[17],$d_produkter[18],$d_produkter[19],$d_produkter[20],$d_produkter[21]");
}
$fp = fopen('../mappe4534/output.csv', 'w');
foreach ($list as $line) {
fputcsv($fp, split(',', $line),";");
}
fclose($fp);
?>
Takker forud,
Martin