回答編集履歴

6

見直し

2019/11/28 14:01

投稿

退会済みユーザー
test CHANGED
@@ -42,9 +42,7 @@
42
42
 
43
43
  $json = file_get_contents('226112_data.json');
44
44
 
45
- $json = mb_convert_encoding($json, 'UTF-8');
45
+ $json_arr = json_decode(preg_replace('/^\xEF\xBB\xBF/', '', $json), true);
46
-
47
- $json_arr = json_decode($json, true);
48
46
 
49
47
  if (is_null($json_arr)) {
50
48
 
@@ -80,10 +78,8 @@
80
78
 
81
79
  こんな感じに雑サンプルコード。
82
80
 
83
- 直接取得したjsonファイルを処理するとSyntax errorを回避できず
81
+ 直接取得したjsonファイルを処理するとSyntax errorになりますが
84
82
 
85
- ネット上json整形サービスにて加工しならエラーなく実行きる
83
+ UTF-8BOM付きであるめなので、
86
84
 
87
- というところで動作確認を取ったものの、
85
+ preg_replaceを組み合わせれば回避できす。
88
-
89
- 今日は一旦ここで区切ります。

5

見直し

2019/11/28 14:01

投稿

退会済みユーザー
test CHANGED
@@ -40,7 +40,7 @@
40
40
 
41
41
  //exit;
42
42
 
43
- $json = file_get_contents('226112_data_s.json');
43
+ $json = file_get_contents('226112_data.json');
44
44
 
45
45
  $json = mb_convert_encoding($json, 'UTF-8');
46
46
 
@@ -80,8 +80,10 @@
80
80
 
81
81
  こんな感じに雑サンプルコード。
82
82
 
83
- テストに使ったjsonファイルの保存方法に問題があったようだったので、
83
+ 直接取得したjsonファイルを処理するとSyntax errorを回避きず
84
84
 
85
- 改めてphpコード内でfile_put_contents()にて保存したjsonファイルを基に動作確認をとった次第。
85
+ ネット上のjson整形サービスにて加工したものならエラーなく実行できる、
86
86
 
87
- (mb_convert_encoding()UTF-8へ変換かけたら、json_decode()でSyntax errorがでなくなった、っていう。)
87
+ というところま動作確認を取ったものの
88
+
89
+ 今日は一旦ここで区切ります。

4

見直し

2019/11/28 13:52

投稿

退会済みユーザー
test CHANGED
@@ -18,6 +18,16 @@
18
18
 
19
19
  ```php
20
20
 
21
+ <html>
22
+
23
+ <head>
24
+
25
+ <title>226112.php</title>
26
+
27
+ </head>
28
+
29
+ <body>
30
+
21
31
  <?php
22
32
 
23
33
 
@@ -26,11 +36,25 @@
26
36
 
27
37
  //$json = file_get_contents($url);
28
38
 
29
- $json = file_get_contents('226112_data.json');
39
+ //file_put_contents('226112_data.json', $json);
30
40
 
31
- $json_arr = json_decode($json, TRUE);
41
+ //exit;
32
42
 
43
+ $json = file_get_contents('226112_data_s.json');
44
+
33
- //print_r($json_arr['column']);
45
+ $json = mb_convert_encoding($json, 'UTF-8');
46
+
47
+ $json_arr = json_decode($json, true);
48
+
49
+ if (is_null($json_arr)) {
50
+
51
+ echo json_last_error() . PHP_EOL;
52
+
53
+ echo json_last_error_msg() . PHP_EOL;
54
+
55
+ exit;
56
+
57
+ }
34
58
 
35
59
  $list = $json_arr['list'];
36
60
 
@@ -44,6 +68,20 @@
44
68
 
45
69
  echo "</p>" . PHP_EOL;
46
70
 
71
+ ?>
72
+
73
+ </body>
74
+
75
+ </html>
76
+
77
+
78
+
47
79
  ```
48
80
 
49
81
  こんな感じに雑サンプルコード。
82
+
83
+ テストに使ったjsonファイルの保存方法に問題があったようだったので、
84
+
85
+ 改めてphpコード内でfile_put_contents()にて保存したjsonファイルを基に動作確認をとった次第。
86
+
87
+ (mb_convert_encoding()でUTF-8へ変換かけたら、json_decode()でSyntax errorがでなくなった、っていう。)

3

見直し

2019/11/28 13:49

投稿

退会済みユーザー
test CHANGED
@@ -16,7 +16,7 @@
16
16
 
17
17
  ---
18
18
 
19
- '''php
19
+ ```php
20
20
 
21
21
  <?php
22
22
 

2

見直し

2019/11/28 09:58

投稿

退会済みユーザー
test CHANGED
@@ -11,3 +11,39 @@
11
11
  楽天ブックスの新刊カレンダーのjsonは非公式APIのようなので、
12
12
 
13
13
  雑に扱うと良くない気がします。
14
+
15
+
16
+
17
+ ---
18
+
19
+ '''php
20
+
21
+ <?php
22
+
23
+
24
+
25
+ //$url = "https://books.rakuten.co.jp/event/book/pocket-book/calendar/2019/11/js/booklist.json"; //新刊検索
26
+
27
+ //$json = file_get_contents($url);
28
+
29
+ $json = file_get_contents('226112_data.json');
30
+
31
+ $json_arr = json_decode($json, TRUE);
32
+
33
+ //print_r($json_arr['column']);
34
+
35
+ $list = $json_arr['list'];
36
+
37
+ echo "<p>" . PHP_EOL;
38
+
39
+ foreach ($list as list($id,$url,$img,$eisbn,$date,$ttl,$ttl_kana,$athr,$dprc,$bprc,$ahid_id,$jun_id,$cpn_id,$ser_id,$lbl_id,$s_rec,$s_new,$s_res,$s_frc,$f_adlt,$fc1_id,$fc2_id,$fc3_id,$viewer_id,$viewer_url)) {
40
+
41
+ echo $ttl . "<br />" . PHP_EOL;
42
+
43
+ }
44
+
45
+ echo "</p>" . PHP_EOL;
46
+
47
+ ```
48
+
49
+ こんな感じに雑サンプルコード。

1

加筆修正

2019/11/28 09:58

投稿

退会済みユーザー
test CHANGED
@@ -3,3 +3,11 @@
3
3
 
4
4
 
5
5
  `print_r($json_arr);`
6
+
7
+
8
+
9
+ 老婆心ながら、
10
+
11
+ 楽天ブックスの新刊カレンダーのjsonは非公式APIのようなので、
12
+
13
+ 雑に扱うと良くない気がします。