とりあえず、こちらのページを参考にCSV読込処理作成(PHP5.3.3)
//ファイル取得
$buff = file_get_contents($csv_path);
//エンコード
$buff = mb_convert_encoding($buff, 'UTF-8', 'SJIS-WIN');
//エンコードしたファイルを書き込むテンポラリーファイル作成
$temp = tmpfile();
//テンポラリーファイルに書き込み
fwrite($temp, $buff);
//テンポラリーファイルポインタの位置を先頭に戻す
rewind($temp);
//テンポラリーファイルよりCSVデータとして取得
$csv = array();
while (($buff = fgetcsv($temp, 0, ",")) !== FALSE) {
$csv[] = $buff;
}
//ファイルクローズ
fclose($temp);
実行してみると、何故か英数字始まりの物だけは読み込めている。
調べてみると、どうやらエンコードする前にロケールの設定をしたらいけたそうな。。。
2行目の前に setlocale(LC_ALL, 'ja_JP'); 追加。
おっ、いけた♪と思いきや、先頭の文字が化けているorz
再度調査したところこちらのページに「この現象はPHP4ではおこらず、PHP5で発生します。」と。
先程差し込んだ行を setlocale(LC_ALL, 'ja_JP.UTF-8'); に変更して実行。
見事無事読込成功。
リンク先の方々、ありがとうございました。