下記をformat.phpにつくった。
/** * アップロードされたCSVファイルを配列に変換する * @param arrray $csv ($_FILEのデータ) * @return array $array */ static function csv_to_array($csv = null){ if(empty($csv['file'])) return null; $csv_data = file_get_contents($csv['file']); $csv_data = mb_convert_encoding($csv_data, 'UTF-8', 'sjis-win'); $fp = fopen('php://memory', 'r+'); fwrite($fp, $csv_data); rewind($fp); $current_locale = setlocale(LC_ALL, '0'); setlocale(LC_ALL, 'ja_JP.UTF-8'); while($values = fgetcsv($fp)){ $data[] = $values; } setlocale(LC_ALL, $current_locale); fclose($fp); return $data; }
コントローラで、Uploadを使ってアプッロードファイルのチェックをしてから、上記関数を呼び出し、CSVデータを配列化した。