基本的にRFC4180準拠のCSVファイル用。文字コードはSJISを想定、区切り文字はカンマ、文字列は必ず「”」で囲うことを前提とする。
※文字列がマルチバイト、かつ「”」で括られていないカラムは場合文字化けするので注意。
function importCsv($filePath) {
// 返却用の入れ物を用意
$data = array();
// ファイルポインタを読み取り専用でオープン
$fp = fopen($filePath, 'r');
// ロケールをja_JPにセット(これをしないとマルチバイトを読み込んだ際に文字化けするので注意)
setlocale(LC_ALL, 'ja_JP');
// ファイルの先頭から終端まで読み込む
while(!feof($fp)){
$line = fgetcsv($fp);
if($line) {
// 読み込むと同時に文字コードをSJISから現在の設定値へ変換する
foreach($line as $k => $v) $line[$k] = mb_convert_encoding($v, mb_internal_encoding(), 'SJIS');
$data[] = $line;
}
}
// 値を返却する
return $data;
}