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

質問編集履歴

2

整理

2019/05/16 07:38

投稿

xw1667
xw1667

スコア12

title CHANGED
File without changes
body CHANGED
@@ -28,7 +28,7 @@
28
28
  $jsonb = "";
29
29
 
30
30
  $jsonb = json_decode($one->context);
31
- // var_dump($jsonb->switch);exit;
31
+
32
32
  fputcsv($stream, [
33
33
  $one->data,//$one->dataはjsonの場合、「{\"text\": \"こんにちは\"\」と「\"type\": \"text\"}""」になる
34
34
  $one->data,

1

コード追加

2019/05/16 07:37

投稿

xw1667
xw1667

スコア12

title CHANGED
File without changes
body CHANGED
@@ -2,4 +2,60 @@
2
2
  例:{"key":"","value":""}
3
3
  しかし、CSV出力しますと、「{"key":""」、「"value":""}」になります。
4
4
  解決方法はありますか?
5
- よろしくお願いいたします。
5
+ よろしくお願いいたします。
6
+
7
+
8
+ 現在のコード
9
+ ```php
10
+
11
+ $all = ......DBからデータを取得する
12
+
13
+ $stream = fopen('php://temp', 'w');
14
+
15
+ fputcsv($stream,[
16
+ 'タイトル1'
17
+ ,'タイトル2'
18
+ ,'タイトル3'
19
+ ,'タイトル4'
20
+ ,'タイトル5'
21
+ ,'タイトル6'
22
+ ,'タイトル7'
23
+ ,'タイトル8'
24
+ ]
25
+ );
26
+
27
+ foreach ($all as $one) {
28
+ $jsonb = "";
29
+
30
+ $jsonb = json_decode($one->context);
31
+ // var_dump($jsonb->switch);exit;
32
+ fputcsv($stream, [
33
+ $one->data,//$one->dataはjsonの場合、「{\"text\": \"こんにちは\"\」と「\"type\": \"text\"}""」になる
34
+ $one->data,
35
+ $one->data,
36
+ $jsonb->data,
37
+ $jsonb->data,
38
+ $one->data,
39
+ $one->data,
40
+ $one->data,
41
+ ],
42
+ ',',
43
+ '"',
44
+ '"'
45
+ );
46
+ }
47
+ rewind($stream);
48
+
49
+ $csv = str_replace(PHP_EOL, "\r\n", stream_get_contents($stream));
50
+ $csv = mb_convert_encoding($csv, 'SJIS-win', 'UTF-8');
51
+
52
+ $filename = date("Ymd_Hi",time()).'.csv';
53
+
54
+ $headers = array(
55
+ 'Content-Type' => 'text/csv',
56
+ 'Content-Disposition' => 'attachment; filename*=UTF-8\'\''.rawurlencode($filename),
57
+ );
58
+
59
+
60
+ return response($csv,200,$headers);
61
+ ```