It's easy to save an Excel file as CSV and read it in PHP with the fgetcsv function but this may not work so well if the file contains non-English characters. Excel uses a non-standard character encoding for csv files. You can save an Excel file as 'unicode' text however there are several unicode systems - Windows uses UTF-16, and PHP uses UTF-8. To open the 'unicode text' file in PHP you have to convert it, in addition you may want to be able to open UTF-8 files that may be created by other systems. PHP has an encoding detection function - but it can't detect UTF-16. I've solved the problem with the following function which detects from several encodings, adds an appropriate filter, and returns a filehandle which reads as UTF-8. function fopen_utf8 ( $filename ){ $encoding = '' ; $handle = fopen ( $filename , 'r' ); $bom = fread ( $handle , 2 ); // fclose($handle); rewind ( $handle ); if( $bom === chr ( 0xff ). chr ( 0xfe...
Comments