fgetcsvはPHP5で使えない?

Pocket

先日、利用しているレンタルサーバのPHPが4から5になりました(PHP4からPHP5に切り替えた)。
使えなくなる関数もあるようなのですが、よく分からないので、特にチェックもせずに見切り発車。
今回は「fgetcsv」の不具合を発見しました。
PHP5では日本語の取扱に関して正しく動作しません。
調べてみると、phpファイルをUTF-8とした場合、csvファイルもUTF-8にする必要があるそうです。
ところが今回のケースでは元々、php、csv、共にUTF-8になっていました。

原因を探るのも面倒なので、「file_get_contents」を使うことにしました。
fgetcsvは自動的に配列に分解してくれるのですが、使い方が少々、面倒。
一方、file_get_contentsはファイル名を指定するだけで、内容を丸ごと文字列として取り込んでくれるので使い方は簡単。csvファイルであればexplodeを使い、まず改行で分割、次にカンマで分割して、配列にすることができます。
この方法を使ってコードを修正したところ、fgetcsvで不具合が起きていたものも、すんなり正しく動作しました。

今後、fgetcsvは使わないことにします。

[ 2009年10月26日 | カテゴリー: PHP | タグ: , ]

« | »

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

送信してください。


タグ

カテゴリー

最近の投稿

最近のコメント

固定ページ

アーカイブ

stabucky

写真

メタ情報