質問編集履歴

1

ご指摘どおりタイトルの編集と採用コードを直接貼り付けました

2020/03/17 09:53

投稿

saya24
saya24

スコア223

test CHANGED
@@ -1 +1 @@
1
- 初めてのWebAPI開発(PHP)
1
+ 初めてのWebAPI開発(PHP)、コピペしたAPIで 戻り値を正常に表示できない
test CHANGED
@@ -8,6 +8,216 @@
8
8
 
9
9
  test01.phpというファイルに、[こちら](https://qiita.com/busyoumono99/items/9b5ffd35dd521bafce47)で紹介された簡易的なコードを貼り付けて、自分のApacheのDocumentRootに配置しました。
10
10
 
11
+ ```PHP
12
+
13
+ // users.php
14
+
15
+ <?php
16
+
17
+ /**
18
+
19
+ * 結果をjsonで返却する
20
+
21
+ *
22
+
23
+ * @param array resultArray 返却値
24
+
25
+ * @return string jsonで表現されたレスポンス
26
+
27
+ * @author kobayashi
28
+
29
+ **/
30
+
31
+ function returnJson($resultArray){
32
+
33
+ if(array_key_exists('callback', $_GET)){
34
+
35
+ $json = $_GET['callback'] . "(" . json_encode($resultArray) . ");";
36
+
37
+ }else{
38
+
39
+ $json = json_encode($resultArray);
40
+
41
+ }
42
+
43
+ header('Content-Type: text/html; charset=utf-8');
44
+
45
+ echo $json;
46
+
47
+ exit(0);
48
+
49
+ }
50
+
51
+
52
+
53
+
54
+
55
+
56
+
57
+ /**
58
+
59
+ * ユーザの一覧をjsonで返す
60
+
61
+ *
62
+
63
+ * @param string user_type a,admin,o,operatorg,guest,のいずれか
64
+
65
+ * @return array
66
+
67
+ * string result OK,NG
68
+
69
+ * array users 成功時のみ。ユーザリスト
70
+
71
+ * string name ユーザ名
72
+
73
+ * int age 年齢
74
+
75
+ * string message 失敗時のみ。エラーメッセージ
76
+
77
+ *
78
+
79
+ * @author kobayahshi
80
+
81
+ **/
82
+
83
+ //---------------------------------------------------------
84
+
85
+ // 処理の開始
86
+
87
+ //---------------------------------------------------------
88
+
89
+ // 値の取得(リクエストの受付)
90
+
91
+ $type = $_REQUEST['user_type'];
92
+
93
+
94
+
95
+ // ユーザリストの初期化
96
+
97
+ $user_list = [];
98
+
99
+ // 返却値の初期化
100
+
101
+ $result = [];
102
+
103
+
104
+
105
+ try {
106
+
107
+ // 値の検証
108
+
109
+ if (empty($type)) {
110
+
111
+ throw new Exception("no type...");
112
+
113
+ }
114
+
115
+
116
+
117
+ // ユーザリストの作成
118
+
119
+ switch ($type) {
120
+
121
+ case 'a':
122
+
123
+ case 'admin':
124
+
125
+ $user_list = [
126
+
127
+ ['name'=>'中居','age'=>18]
128
+
129
+ ];
130
+
131
+ break;
132
+
133
+ case 'o':
134
+
135
+ case 'operator':
136
+
137
+ $user_list = [
138
+
139
+ ['name'=>'木村','age'=>17],
140
+
141
+ ['name'=>'森','age'=>16]
142
+
143
+ ];
144
+
145
+ break;
146
+
147
+ case 'g':
148
+
149
+ case 'guest':
150
+
151
+ $user_list = [
152
+
153
+ ['name'=>'香取','age'=>14],
154
+
155
+ ['name'=>'草薙','age'=>15],
156
+
157
+ ['name'=>'稲垣','age'=>15],
158
+
159
+ ['name'=>'岡田','age'=>15],
160
+
161
+ ['name'=>'森田','age'=>15],
162
+
163
+ ['name'=>'三宅','age'=>15],
164
+
165
+ ['name'=>'長野','age'=>15],
166
+
167
+ ['name'=>'坂本','age'=>15],
168
+
169
+ ['name'=>'井ノ原','age'=>15]
170
+
171
+ ];
172
+
173
+ break;
174
+
175
+ default:
176
+
177
+ // 不正な値
178
+
179
+ throw new Exception("Invalid value...");
180
+
181
+ break;
182
+
183
+ }
184
+
185
+
186
+
187
+ // 返却値の作成
188
+
189
+ $result = [
190
+
191
+ 'result' => 'OK',
192
+
193
+ 'users' => $user_list
194
+
195
+ ];
196
+
197
+ } catch (Exception $e) {
198
+
199
+ $result = [
200
+
201
+ 'result' => 'NG',
202
+
203
+ 'message' => $e->getMessage()
204
+
205
+ ];
206
+
207
+ }
208
+
209
+
210
+
211
+ // JSONでレスポンスを返す
212
+
213
+ returnJson($result);
214
+
215
+
216
+
217
+
218
+
219
+ ```
220
+
11
221
 
12
222
 
13
223
  続いて画面にあるように、CURLのコマンドで、このAPIにアクセスすると 一応にJSONデータが返ってくるも、文字化け?だか何かで解読不能です。
@@ -28,4 +238,4 @@
28
238
 
29
239
 
30
240
 
31
- どうすればジャニメンの名前をコマンド画面に正常に表示できるのでしょうか?
241
+ どうすれば参考にした記事同様 JSONデタ内2イト文字をコマンド画面に表示できるのでしょうか?