質問編集履歴

4

ささあ

2021/10/07 00:43

投稿

larabeler
larabeler

スコア10

test CHANGED
@@ -1 +1 @@
1
- phpのCSV読み込み時の文字化について
1
+ 「修正」phpのCSV読み込み時の文字化について
test CHANGED
File without changes

3

$rows

2021/10/07 00:43

投稿

larabeler
larabeler

スコア10

test CHANGED
@@ -1 +1 @@
1
- phpのCSV書き込み時の文字化について
1
+ phpのCSV読み込み時の文字化について
test CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
 
4
4
 
5
- CSV書き込み時に下記の記号が文字化けし「?」になります。
5
+ CSV読み込み時に下記の記号が文字化けし「?」になります。
6
6
 
7
7
  ```
8
8
 
@@ -12,53 +12,17 @@
12
12
 
13
13
 
14
14
 
15
+ ### 書き込み時ソースコード
15
16
 
17
+ ```
16
18
 
17
- ### 該当のソースコード
18
-
19
-
20
-
21
- ```ここに言語名を入力
22
-
23
- <?php
24
-
25
- $arr = array (
19
+ $rows = array (
26
20
 
27
21
  array('▶', '▶', '▶', '▶'),
28
22
 
29
23
  array('▶', '▶')
30
24
 
31
25
  );
32
-
33
-
34
-
35
- foreach ($arr as $line) {
36
-
37
- mb_convert_variables('SJIS-win', 'UTF-8', $line);
38
-
39
- $file->fputcsv($line);
40
-
41
- }
42
-
43
- ```
44
-
45
-
46
-
47
- ### 補足情報(FW/ツールのバージョンなど)
48
-
49
-
50
-
51
- ご教授お願いいたします。
52
-
53
-
54
-
55
-
56
-
57
-
58
-
59
- ### 解決済み
60
-
61
- ```
62
26
 
63
27
  $spec = "php://filter/write=convert.iconv.utf-8%2Futf-16le/resource=sample.csv";
64
28
 
@@ -80,9 +44,7 @@
80
44
 
81
45
 
82
46
 
83
-
84
-
85
- ### 読み込み時文字化け
47
+ ### 該当のソースコード
86
48
 
87
49
 
88
50
 
@@ -115,3 +77,15 @@
115
77
  }
116
78
 
117
79
  ```
80
+
81
+
82
+
83
+
84
+
85
+
86
+
87
+ ### 補足情報(FW/ツールのバージョンなど)
88
+
89
+
90
+
91
+ ご教授お願いいたします。

2

sample.csv

2021/10/06 09:01

投稿

larabeler
larabeler

スコア10

test CHANGED
File without changes
test CHANGED
@@ -77,3 +77,41 @@
77
77
  }
78
78
 
79
79
  ```
80
+
81
+
82
+
83
+
84
+
85
+ ### 読み込み時文字化け
86
+
87
+
88
+
89
+ ```
90
+
91
+ $spec = "php://filter/read=convert.iconv.utf-16%2Futf-8/resource=sample.csv";
92
+
93
+ $file = new \SplFileObject($spec, 'rb');
94
+
95
+ $file->setFlags(
96
+
97
+ \SplFileObject::READ_CSV |
98
+
99
+ \SplFileObject::SKIP_EMPTY |
100
+
101
+ \SplFileObject::READ_AHEAD |
102
+
103
+ \SplFileObject::DROP_NEW_LINE
104
+
105
+ );
106
+
107
+ $file->setCsvControl("\t");
108
+
109
+
110
+
111
+ foreach ($file as $row) {
112
+
113
+ var_dump($row);
114
+
115
+ }
116
+
117
+ ```

1

sas

2021/10/06 08:57

投稿

larabeler
larabeler

スコア10

test CHANGED
File without changes
test CHANGED
@@ -49,3 +49,31 @@
49
49
 
50
50
 
51
51
  ご教授お願いいたします。
52
+
53
+
54
+
55
+
56
+
57
+
58
+
59
+ ### 解決済み
60
+
61
+ ```
62
+
63
+ $spec = "php://filter/write=convert.iconv.utf-8%2Futf-16le/resource=sample.csv";
64
+
65
+ $file = new \SplFileObject($spec, 'wb');
66
+
67
+ $file->setCsvControl("\t");
68
+
69
+
70
+
71
+ $file->fwrite("\xEF\xBB\xBF");
72
+
73
+ foreach ($rows as $row) {
74
+
75
+ $file->fputcsv($row);
76
+
77
+ }
78
+
79
+ ```