Logicky Blog

Logickyの開発ブログです

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