csvを読み込むやり方

いつも忘れるのでメモしておく

<?php
// これを書かないとfgetcsvで日本語が正しく読み込めない
setlocale(LC_ALL, 'ja_JP.UTF-8');

// 一気に読み込んでエンコード
$data = file_get_contents($_FILES['file']['tmp_name']);
$buf = mb_convert_encoding($data, 'utf-8', 'sjis-win');
$fp = tmpfile();

// 書き込んで最初に戻して読込
fwrite($fp, $buf);
rewind($fp);

$lines = array();
while ($line = fgetcsv($fp)) {
    $lines[] = $line;
}

fclose($fp);

参考サイト
Excel用のCSV(SJIS)をPHP(UTF-8)で読み込む - 130単位

2017/1/7追記
tsvの場合はfgetcsvを以下のようにする

fgetcsv($fp, 0, "\t")

資産形成におすすめのFX口座はこちら。
http://s2fx.com/ranking/856.html