php fputcsv use semicolon separator in CSV

shieldcy picture shieldcy · Aug 31, 2015 · Viewed 22.5k times · Source

I wrote a code where I retrieve data from DB and populate them in CSV using the function 'fputcsv'

I put on top the following:

$file = fopen("internal/customer_info.csv","w");

Then I retrieve the data and put them in variables, run the function:

$customerInfo = $first_name.";".$last_name.";".$address1.";".$address2.";".$postcode.";".$city.";".$country.";".$email;
fputcsv($file,explode(';',$customerInfo));

And finally, I closed the file.

My question is: How can I put a semicolon separator? As you can see I have semicolon there but the CSV output does not. It shows a comma instead.

Why's that? Can anyone help me?

Answer

mario.klump picture mario.klump · Aug 31, 2015

The delimiter can be set by using the third parameter of fputcsv():

int fputcsv ( resource $handle , array $fields [, string $delimiter = "," [, string $enclosure = '"' [, string $escape_char = "\" ]]] )

Please change:

fputcsv($file,explode(';',$customerInfo));

to:

fputcsv($file,explode(';',$customerInfo), ";");

Please check the documentation before asking on Stack Overflow.