[PHP-users 34049] fgetcsv()における問題?

高橋薫 kaoru-ta @ most.co.jp
2008年 9月 19日 (金) 17:16:23 JST


お世話になります。
ファイルを読み込んで特定のデータを変換するプログラムを作成しましたが、
2点ほどマニュアルに記載のない現象が発生しました。
(1点目)
fgetcsv で読み込んだ配列の中に、元のデータが全て半角スペースであった場合
にその配列が空になってしまう。
(2点目)
fgetcsv で読み込んだ配列の中の先頭に、半角カタカナがある場合はそのカタカ
ナが落ちる。(削除された状態、半角カタカナ以外の場合は問題なし)

例>
mb_internal_encoding('UTF-8');
にしておいて
読み込むデータがCSV形式で行の内容が次のような場合(utf-8のファイル)

  アカサタナ,テスト,12345, ,漢字データ,abcde\r\n

これを$data=fgetcsv()で取り込んだ場合に
$data[0]='カサタナ'      <---先頭の'ア'が落ちる①
$data[1]='テスト'
$data[2]='12345'
$data[3]=''      <---半角スペースが落ちる②
$data[4]='漢字データ'
$data[5]='abcde'
となります。

内部円コーディングおよびファイルのエンコードがSJISとEUCの場合には
①はおきません。
②はいずれの場合にもおきます。・・・仕様なのでしょうか?

①はバグではないのでしょうか?
この手のメールをこちらに送ってよかったのでしょうか?
違っていたら申し訳ありません。
高橋



PHP-users メーリングリストの案内