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?
use implode(PHP_EOL) will do the trick.
fputcsv() formats a line (passed as a fields array) as CSV and writes it (terminated by a newline) to the specified file stream .
To convert an array into a CSV file we can use fputcsv() function. The fputcsv() function is used to format a line as CSV (comma separated values) file and writes it to an open file.
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With