DEV

fuelphp - csvインポート

下記を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データを配列化した。