2015年7月18日phpツイートシェアはてブ送るPocketPHPを利用してCSVを読み込んだり書き込んだりする処理はよくあると思います。それ以上にCSVを読み込むと文字化けするという事もあると思います。だいたいプログラムとかhtmlを書くときって文字コードがUTF8なんですけど、幸か不幸かCSVファイルを開くのにエクセルがよく利用されると思いますがエクセルでCSV形式で保存するとSJISになってしまうんですよね。なんなだこの仕様は(笑)そんな訳で、CSVファイルを読みこんで表示させる時に文字化けしないように処理しましょうっていうのか今回の目的です。一時ファイルを作成して文字コードを変換したデータを書き込む。使ってループ内で一行ずつ文字コードを変換していく方法があります。今回は、file_get_contents()とtmpfile()を利用した方法をメモしていこうかと思います。ファイルの読み込みができるので効率的だとういうことですね。メーカーfile_get_contentsで読み込むfile_get_contents()はファイルの内容を全て文字列に読み込む関数なので、一旦すべての内容を読み込みます。mb_convert_encodingで一気に文字コードを変換するsjis-winからUTF8へ文字コードを変換したデータを再度、変数に戻します。一時ファイルを作成して文字コードを変換したデータを書き込む。tmpfile関数を利用して一時ファイルを作成します。その後、先ほど文字コードを変換した「$data」のデータをfwrite()を利用して書き込みます。rewind()でファイルポインタを先頭に戻します。一時ファイルのデータを再度CSVとして読み込む一時ファイルをfgetcsv()を利用してCSVとして読み込みし、新しい配列にデータをいれます。最後は、for文を利用して配列のデータの中身を表示しています。*ちなみにCSVファイルは1行のデータ数と、その1行のデータの詳細(サンプルでは商品名とブランド)の配列とで2次元配列となっています。phpcsvphpツイートシェアはてブ送るPocketコメントを残すコメントを投稿するにはログインしてください。コメントデータの処理方法の詳細はこちらをご覧ください。人気の投稿とページ【PHP】phpによるcsvの複数行の削除方法が知りたい。【MySQL】SQLで(NOT)INは、遅いらしいので(NOT)EXISTSを使うべき!?【CSS】画像をスマホ対応!!ウィンドウに合わせて自動で拡大・縮小させるには?!最近の投稿matchMediaでメディアクエリのブレイクポイントで条件分岐してみよう!画面外に配置した要素が横スクロールで表示されてしまう。Reserved.Posting....。