[ロ]PHP5.0.4のfgetcsvとmb_splitおかしくない?

このエントリーをはてなブックマークに追加
はてなブックマーク - [ロ]PHP5.0.4のfgetcsvとmb_splitおかしくない?
Share on Facebook
Bookmark this on Yahoo Bookmark
Bookmark this on Livedoor Clip
Share on FriendFeed
[`tweetmeme` not found]

OSをRedhat9からFC4に変更してからさまざまな問題がチョコチョコと残っているわけですが・・・。
アニカラ検索エンジン[ANI.SONG]の掲示板もうまく動作しておりませんでした。なじぇぇ?
で、凄い不毛な戦いを続けていたわけですが・・・。ようやく解決しました!!
でも、釈然としないものが・・・。
色々うじゃうじゃやった結果導かれたのはPHP/5.0.4のfgetcsv()関数と、mb_split()関数は怪しい動きをしている。ということだ。
上記掲示板ではCSV形式でデータを出力して、それをfgetcsv()関数で読み込んで表示している。
fgetcsv()関数で読み込み時に、文字列の初めにASCII文字列がある場合はきちんと読み込み&表示できるけど、日本語文字で始まっていると表示できない。
で、しょうがないからfgets()関数で一行ずつ読み込んでmb_split()関数を使って「,(カンマ)」でスプリットしたんだけど、スプリットする場所がおかしい。正しいところもあれば、「,」があってもスルーされるところもある。
で、結局のところsplit()関数を使って「,(カンマ)」でスプリットすることで、正しいデータをゲットできた。
うーん、OS入れ替え前(PHP4.3.x)までは問題なかったんだけどなぁ。
エンコーディングの設定とかも以前と違うので、そちらで回避できる現象なのか。それともmb_split()とfgetcsv()がおかしいのか。

Popular Posts:

コメントを残す

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

*