purazumakoiの[はてなブログ]

技術メモから最近はライフログも増えてきてます。

エクセルで編集したcsvをPHPで読み込む

fgetcsvではエクセルが吐き出すcsvは書式がちょっと違う為先頭文字が文字化けする

文字化けする場合(エクセルで保存)

ほげほげ,ふがふが

文字化けしない場合(自分で編集)

"ほげほげ","ふがふが"

ダブルクォーテーションで囲めば文字化けはしないが
エクセルで編集する場合、fgetcsvは使わずに普通にfgetsで取得する


via
【PHP】CSVから日本語を読み取るときに文字化けした | げことじ。

$csvdata = explode(',', trim(fgets($csv, 1000)));

ちなみに

エクセルで編集したcsv文字コードsjis-win。
なので例えばUTF-8のページで表示する場合はPHPだと
mb_convert_encodingで文字変換しなければならない。


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