PHP の fgetcsv で日本語が正しく取得できない場合

fgetcsv でデータを取ろうとしても、環境によって日本語が正しく取得できないことがあった。

ローカルの開発環境だとちゃんと取れるのに本番サーバにアップすると変になる。

全然取れないのならまだわかるんだけど、ちゃんと取れることもあれば空っぽになることもあるという状態。

どうやらこれが原因だったらしく、

注意: この関数はロケール設定を考慮します。もし LANG が例えば en_US.UTF-8 の場合、 ファイル中の 1 バイトエンコーディングは間違って読み込まれます。

PHP: fgetcsv – Manual

ロケールを設定したらうまくいった。

setlocale(LC_ALL,'ja_JP.UTF-8');

携帯サイトのキャッシュコントロール

携帯サイトでは、動的に出力されるページでもキャッシュが残っていて前回と同じ表示になってしまうことが多い。

これをいれてキャッシュ回避。

<meta http-equiv="pragma" content="no-cache" />
<meta http-equiv="cache-control" content="no-chache" />
<meta http-equiv="expires" content="-1" />

うまくいきました。