PHP CSV export met komma als waarde
De functie werkt alleen nu heb ik een veld waar een komma als waarde moet worden gegeven, maar krijg het niet voor elkaar.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
De komma zorgt ervoor dat hij naar een volgende cel gaat. Hoe kan ik een komma als waarde meegeven?
Onderstaande werkt niet
Gewijzigd op 03/10/2018 00:19:22 door Yoeri Achterbergen
CSV staat voor Comma Seperated Values ... ofwel waardes die d.m.v. een komma worden gescheiden.
>> De komma zorgt ervoor dat hij naar een volgende cel gaat.
Precies ... dat is dus ook exact de bedoeling.
Antwoord:
https://stackoverflow.com/questions/7545733/write-a-comma-in-a-csv-file-with-php
Gewijzigd op 03/10/2018 00:35:21 door - Ariën -
- Ariën - op 03/10/2018 00:34:52:
@Ozzie: Volgens mij snapt de TS dat wel, en zoekt hij een oplossing. Want hoe moet hij bijvoorbeeld 's-Gravenshage invoeren, of Jaques 'd Ancona?
Uhm Aar ... je kent toch wel het verschil tussen een apostrof en een komma? :-/
Gewijzigd op 03/10/2018 00:42:11 door Ozzie PHP
De vraag is hier dus waarom je de code zo hebt opgesteld zoals je hebt. fputcsv() doet zelf het beheer over hoe waarden ingevoegd moeten worden:
*facepalm doet*
Maar dan zou een komma tussen quotes geen probleem mogen zijn. Op sich zouden apostrofs ook bij fout gebruik voor problemen kunnen zorgen.
Wat is de output van de CSV nu dan?
*Slaapje doet*
Gewijzigd op 03/10/2018 00:55:59 door - Ariën -
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
header('Content-Type: text/csv');
header('Content-Disposition: attachment; filename="sample.csv"');
$komma = ",";
$data = array(
'Veld1,t+hallo',
'input1'
);
$fp = fopen('php://output', 'wb');
foreach ( $data as $line ) {
$val = explode("+", $line);//hier ging het mis
fputcsv($fp, $val);
}
fclose($fp);
?>
header('Content-Type: text/csv');
header('Content-Disposition: attachment; filename="sample.csv"');
$komma = ",";
$data = array(
'Veld1,t+hallo',
'input1'
);
$fp = fopen('php://output', 'wb');
foreach ( $data as $line ) {
$val = explode("+", $line);//hier ging het mis
fputcsv($fp, $val);
}
fclose($fp);
?>
http://php.net/manual/en/function.fputcsv.php
Code (php)
Toevoeging op 03/10/2018 15:01:57:
En als de 2 waarden op 1 regel moeten komen :