読者です 読者をやめる 読者になる 読者になる

【PHP】macで csv 変換した csvファイルを読み込む【CSV】

普通 CSV ファイルを読み込むとき、
windows なら fgetcsv を使用すれば
無事に読み込むとができる。

 

しかし、macOS で作成した CSV ファイルは
改行コードが違うため、正常に読むこむことができない。

 

そこで、CSVファイルを読み込むための関数を作ってみた。

 

    public function csvFileRead($fileName){
        // 一度バッファに読み込む
        $data = file_get_contents($fileName);

        // mac で作成したcsv は改行コードが違うため、変更を行う
        $data = ereg_replace("\r\n|\r|\n", "\n", $data);

        // 文字コードSJIS から UTF-8 に変換する
        $data = mb_convert_encoding($data, 'UTF-8', 'SJIS');
        $temp = tmpfile();

        // 一時ファイルを作成
        $csvData = array();
        fwrite($temp, $data);
        rewind($temp);

        // CSV ファイルの読み込みを行う
        $csvData = array();
        while($data = fgetcsv($temp, 10000)){
            $csvData[] = $data;
        }
        fclose($temp);

        return $csvData;
    }


第一引数にファイル名を渡せば、
戻り値に配列で返す関数である。