• ベストアンサー

「"」(ダブルクォーテーション)で囲まれた「,」をキャンセルしてcsvの値を抽出するには

111,"あいうえお",,"さしす,せそ" のテキストファイルを value[0] = 111 value[1] = あいうえお value[2] = value[3] = さしす,せそ いう形に配列に入れたいと思っています。見てもらえばわかると思いますが、数字には「"」(ダブルクォーテーション)が付かなくて、「"」の中に入っている「,」(カンマ)は区切り記号とはみなされず値として取り込んでいます。 splitの正規表現など使えないか苦悩しています。いまだ解決方法見つけられず。 テキストファイルの「"」(ダブルクォーテーション)有り/無しや順番などは都度変更されます。 カンマ区切りで、「"」(ダブルクォーテーション)で囲まれた部分は外して値を取り出すにはどうしたらいいのでしょう? ご存知の方、ご教授ください。

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

テキストファイルは別なのですよね? <?PHP $handle = fopen("test.csv", "r"); while (($value = fgetcsv($handle, 1000, ",")) !== FALSE) { print_r($value); } fclose($handle); ?>

その他の回答 (1)

  • cbd_mei
  • ベストアンサー率55% (143/259)
回答No.1

私なら(正規表現方法が良くわかっていないので)まず、1文字目をチェックし 「"」なら次に「",」と出てくるまでの文字数を検索し、そこまでの文字を切り出す そうでなければ普通に「,」までの文字を切り出す という風に処理させるかと思います。 もっといい方法があるかもしれませんが。

関連するQ&A