文字コードを変換してCSVをファイルを読み込む【PHP】
Contents
概要
PHPで、CSVファイルをPHPで読み込む際に、Windowsで編集したCSVファイルを読み込むと文字化けをおこします。Linuxサーバーだと文字コードがUTF-8で、Windowsだと大抵はSJISなので文字化けが発生します。
CSVファイルは、「SplFileObject」をつかっているので、「mb_convert_encoding」ではなく「mb_convert_variables」を使って文字コードを変換してCSVファイルを読み込みます
<?php function csv_to_array($$file) { $file = new SplFileObject($file); $file->setFlags(SplFileObject::READ_CSV); // csvを配列に入れる $results = array(); foreach ($$file as $line) { $results[] = $line; } // SJISからURF-8にエンコーディング mb_convert_variables('UTF-8', array('SJIS-win'), $line); return $results; } ?>
「mb_convert_variables」の引数には以下を指定します。
第1引数:変換後の文字コード(例ではUTF-8)
第2引数:変換前の文字コード(例ではSJIS-win)
第3引数:変換する変数への リファレンス。
詳細は、PHPマニュアルの「mb_convert_variables」を参考にしてください
ディスカッション
コメント一覧
まだ、コメントがありません