teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

まとめを回答に追記

2018/09/05 10:07

投稿

taka-saan
taka-saan

スコア665

answer CHANGED
@@ -20,4 +20,28 @@
20
20
 
21
21
  あれ?上手くいきますけど。。。
22
22
  データにゴミでも入っているんですかね?文字コードとか?
23
- PHP 5.4.16 で試しました。
23
+ PHP 5.4.16 で試しました。
24
+
25
+ ### 追記(まとめ)
26
+ つまりstr_getcsvを普通の使い方をして、
27
+
28
+ "デ"ータ1,データ2
29
+
30
+ こういうデータがあった時に
31
+ エンクロージャが外れて
32
+
33
+ データ1
34
+ データ2
35
+
36
+ こう解釈されるのはおかしいのでは?
37
+
38
+ という疑問ですよね。
39
+
40
+ 確かにおかしい気はしますが、おかしいのはデータであって、
41
+ ではどう解釈するのが正しいかというのも微妙で
42
+ csvのフォーマットは歴史的に方言が沢山あるのが実情ですから
43
+ 「PHPの実装はこういうものだ」と理解するのがよいかと個人的には思いました。
44
+
45
+ どうしてもこの余計な解釈を回避したい場合には、
46
+ データをcsvフォーマットとしてふさわしいものに修正変更するか、
47
+ getcsvをあきらめて自前でパースするしかなさそうです。