Excelで作成したCSVファイルは文字コードがShift-JISであるため、UTF-8に設定してあるPHPで扱うには工夫が必要です。その取り扱い方について調べて、ベンチマークをとってみました。 CSVを配列にする関数4通り テンポラリファイル作成してfgetcsv() <?php function by_tmpfile($file) { $ret = array(); $buf = mb_convert_encoding(file_get_contents($file), 'utf-8', 'sjis-win'); $fp = tmpfile(); fwrite($fp, $buf); rewind($fp); while($line = fgetcsv($fp)) { $ret[] = $line; } fclose($fp); return $ret; } そのままfgetcsv()
![Excel用のCSV(SJIS)をPHP(UTF-8)で読み込む - 130単位](https://cdn-ak-scissors.b.st-hatena.com/image/square/3abf6877ead2c6f1a9348b210278b79e9a97b60a/height=288;version=1;width=512/http%3A%2F%2Fec2.images-amazon.com%2Fimages%2FI%2F51fbxZn8HnL._SL160_.jpg)