Pages

2015年3月5日木曜日

PHP fgetcsvを使える環境を構築

fgetcsv にはロケールを指定するパラメータがありません。

そこで fgetcsv を実行する前に

setlocale(LC_ALL, 'ja_JP.SJIS');

を実行する。

が、しかし化ける。。
試しにEUC-JPを指定してみるといけている気がするけど、一部文字で化ける。。
そもそもなんでEUC-JP。。

で、コマンドからサーバーのロケールを確認

$ locale -a | grep JP

ja_JP
ja_JP.eucjp
ja_JP.ujis
ja_JP.utf8

SJISが無い。。
CentOS 6 でも 7でも入ってない。。

って事で追加しよう。

$ localedef -f SHIFT_JIS -i ja_JP /usr/lib/locale/ja_JP.SJIS

をrootで実行して追加、そして確認

$ locale -a | grep JP

ja_JP
ja_JP.SJIS
ja_JP.eucjp
ja_JP.ujis
ja_JP.utf8

そしてfgetcsvの確認。

setlocale(LC_ALL, 'ja_JP.SJIS');
fgetcsv(***);

とても良い感じ♪
SJIS無い、入れれないサーバーだと使えないな。。
しばらくこれで様子を見てみます。

0 件のコメント:

コメントを投稿

Followers