There are some CSV (Comma Separated Values) related string and file functions in PHP. But when it comes to deal with CSV files, there is another gem: SplFileObject (PHP Manual) built-in. The class makes it even more easy to iterate over the rows. A short example:
<?php /** * open csv file and iterate over rows */ $file = 'data.csv'; try { $csv = new SplFileObject($file, 'r'); } catch (RuntimeException $e ) { printf("Error openning csv: %s\n", $e->getMessage()); } while(!$csv->eof() && ($row = $csv->fgetcsv()) && $row[0] !== null) { // $row is a numelrical keyed array with // a string per each field (zero based). } ?>
If your file has a last empty row, the class’s fgetcsv() function returns it as an array containing one element with the NULL value.
The object itself is handy for file related operations and using it prevents you to deal with fopen, close etc. separately. It support streams like it’s common in PHP and you can set options for the CSV format as well (seperator etc.).
By default PHP is compatible with standard CSV files, for example with those exported from the Calc Spreadsheet application of the OpenOffice.org office suite – both do a worry free working together.
Read On:
I didn’t realize SplFileObject had CSV-specific methods. That’s very helpful to know, thanks!
I was not aware either. Reading is a bliss, writing is not possible as of now. Works like a charm for quick and easy CSV integration for me so far. I added some links to more ways of use btw.