Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

CSVs without quotes not working with fgetcsv

Tags:

php

csv

fgetcsv

I'm trying to parse CSV files uploaded by the user through PHP, but it's not working properly.

I've uploaded several properly formatted CSVs and it worked fine, however; I have many users trying to import CSV files exported from Excel and they are having problems. I've compared the files to mine and noticed that the Excel files all lack quotes around the entries. Aside from that, they are identical. If I open it and save it with Open Office, without making any changes at all it works. So I'm fairly certain it's related to the quotes.

My question is; how do I read these improperly formatted CSVs?

UPDATE: Cause has been found!

This is specific to the Mac version of Excel. Line breaks are handled differently on Macs for some arbitrary reason, so before using fgetcsv, you should do this;

ini_set('auto_detect_line_endings',TRUE);
like image 984
Stephen Belanger Avatar asked Feb 23 '10 19:02

Stephen Belanger


1 Answers

This is specific to the Mac version of Excel. Line breaks are handled differently on Macs for some arbitrary reason, so before using fgetcsv, you should do this;

ini_set('auto_detect_line_endings',TRUE);
like image 97
Stephen Belanger Avatar answered Oct 02 '22 21:10

Stephen Belanger