質問編集履歴
5
データ利用目的と、PHP変数で受け取る理由を冒頭に追記。最下部にその後試したことを追記。
test
CHANGED
File without changes
|
test
CHANGED
@@ -2,7 +2,35 @@
|
|
2
2
|
|
3
3
|
|
4
4
|
|
5
|
+
### ゴール
|
6
|
+
|
7
|
+
APIから取り出したJSON風のデータ型から、
|
8
|
+
|
9
|
+
【JavaScript/CSS でカラオケ風テロップ表示】
|
10
|
+
|
11
|
+
https://pronama.jp/2015/03/20/karaoke-telop/
|
12
|
+
|
13
|
+
のように、
|
14
|
+
|
15
|
+
歌詞・タイムスタンプを『フレーズごとに個別に』取り出してJavascriptで
|
16
|
+
|
17
|
+
カラオケ風に表示する事。
|
18
|
+
|
19
|
+
※私が唯一まともに扱える言語がPHPのため、PHPの変数で受け取れるととても嬉しいです。
|
20
|
+
|
21
|
+
しかし、結論無理なら、
|
22
|
+
|
23
|
+
JSON.stringify
|
24
|
+
|
25
|
+
JSON.parse
|
26
|
+
|
27
|
+
といった関数を1から勉強してみます。
|
28
|
+
|
29
|
+
|
30
|
+
|
31
|
+
### 今回実現したい事
|
32
|
+
|
5
|
-
|
33
|
+
以下の型のファイルを、PHPでパースしたい
|
6
34
|
|
7
35
|
|
8
36
|
|
@@ -14,9 +42,7 @@
|
|
14
42
|
|
15
43
|
|
16
44
|
|
17
|
-
しかし、シングルクオートが混ざってるので、JSON(風)です。JSONにすればいいのに、との修正依頼ありがとうございます。
|
45
|
+
しかし、シングルクオートが混ざってるので、JSON(風)です。JSONにすればいいのに、との修正依頼ありがとうございます。私もスマートじゃ無いと思います。
|
18
|
-
|
19
|
-
私もスマートじゃ無いと思います。
|
20
46
|
|
21
47
|
|
22
48
|
|
@@ -65,3 +91,41 @@
|
|
65
91
|
このファイル形式を正しくはなんと言うのかも、合わせてご指導頂けると嬉しいです。
|
66
92
|
|
67
93
|
宜しくお願い致します。
|
94
|
+
|
95
|
+
|
96
|
+
|
97
|
+
### その後試した事
|
98
|
+
|
99
|
+
無理やり置換処理。しかし、文字列にクオートが混ざった段階で、どこかで破たんする
|
100
|
+
|
101
|
+
```foo.php
|
102
|
+
|
103
|
+
$content=str_replace("\"","'",$content);
|
104
|
+
|
105
|
+
$content=str_replace("{'","{\"",$content);
|
106
|
+
|
107
|
+
$content=str_replace("': ","\": ",$content);
|
108
|
+
|
109
|
+
$content=str_replace(": '",": \"",$content);
|
110
|
+
|
111
|
+
$content=str_replace("'}","\"}",$content);
|
112
|
+
|
113
|
+
$content=str_replace("', 'start","\", \"start",$content);
|
114
|
+
|
115
|
+
$content=str_replace("', 'text","\", \"text",$content);
|
116
|
+
|
117
|
+
$content=str_replace("', 'duration","\", \"duration",$content);
|
118
|
+
|
119
|
+
$content=str_replace(", 'start",", \"start",$content);
|
120
|
+
|
121
|
+
$content=str_replace(", 'text",", \"text",$content);
|
122
|
+
|
123
|
+
$content=str_replace(", 'duration",", \"duration",$content);
|
124
|
+
|
125
|
+
$content=str_replace("\'","'",$content);
|
126
|
+
|
127
|
+
$content=str_replace(",'",",\"",$content);
|
128
|
+
|
129
|
+
$content=str_replace("}, {","},\n {",$content);
|
130
|
+
|
131
|
+
```
|
4
test
CHANGED
File without changes
|
test
CHANGED
@@ -56,9 +56,9 @@
|
|
56
56
|
|
57
57
|
|
58
58
|
|
59
|
-
読みこむJSON(仮)ファイル内の、
|
59
|
+
読みこむJSON(仮)ファイル内の、全体を
|
60
60
|
|
61
|
-
str_replaceでダブルクオートに置換して、
|
61
|
+
str_replaceでダブルクオートに置換して、シングルクオート(だった箇所のみ)エスケープするですとか、、、
|
62
62
|
|
63
63
|
なんなり方法はありそうですが、よりスマートな方法をご教授くださいませ。
|
64
64
|
|
3
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,3 +1,7 @@
|
|
1
|
+
初心者です。
|
2
|
+
|
3
|
+
|
4
|
+
|
1
5
|
### 以下のファイルを、PHPでパースしたいです。
|
2
6
|
|
3
7
|
|
@@ -10,7 +14,13 @@
|
|
10
14
|
|
11
15
|
|
12
16
|
|
13
|
-
しかし、
|
17
|
+
しかし、シングルクオートが混ざってるので、JSON(風)です。JSONにすればいいのに、との修正依頼ありがとうございます。
|
18
|
+
|
19
|
+
私もスマートじゃ無いと思います。
|
20
|
+
|
21
|
+
|
22
|
+
|
23
|
+
さて、このままだと
|
14
24
|
|
15
25
|
大元のJSON(仮)ファイルの、各配列の括り方が、シングルクオートとダブルクオートが混ざり、エラーが出てしまいます。Pythonだと、literal_eval、というサポート関数があるようなのですが、PHPには、何かデータフォーマットを柔軟に読み込んでくれる書き方はありますでしょうか?
|
16
26
|
|
@@ -48,9 +58,9 @@
|
|
48
58
|
|
49
59
|
読みこむJSON(仮)ファイル内の、シングルクオートを一旦エスケープして、ファイル全体を
|
50
60
|
|
51
|
-
str_replaceでダブルクオートに置換してしまうですとか、、、
|
61
|
+
str_replaceでダブルクオートに置換して、しまうですとか、、、
|
52
62
|
|
53
|
-
なんなり方法はありそうですが、
|
63
|
+
なんなり方法はありそうですが、よりスマートな方法をご教授くださいませ。
|
54
64
|
|
55
65
|
このファイル形式を正しくはなんと言うのかも、合わせてご指導頂けると嬉しいです。
|
56
66
|
|
2
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
【データフォーマット】シングルクオートとダブルクオートが混ざってるJSONのパース方法【PHP】
|
1
|
+
【データフォーマット】シングルクオートとダブルクオートが混ざってるJSON(仮)のパース方法【PHP】
|
test
CHANGED
@@ -46,10 +46,12 @@
|
|
46
46
|
|
47
47
|
|
48
48
|
|
49
|
-
読みこむJSONファイル内の、シングルクオートを一旦エスケープして、ファイル全体を
|
49
|
+
読みこむJSON(仮)ファイル内の、シングルクオートを一旦エスケープして、ファイル全体を
|
50
50
|
|
51
51
|
str_replaceでダブルクオートに置換してしまうですとか、、、
|
52
52
|
|
53
53
|
なんなり方法はありそうですが、、、正しく、スマートな方法をご教授くださいませ。
|
54
54
|
|
55
|
+
このファイル形式を正しくはなんと言うのかも、合わせてご指導頂けると嬉しいです。
|
56
|
+
|
55
57
|
宜しくお願い致します。
|
1
大元のJSONファイルを、置換して対応する選択肢を追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -46,4 +46,10 @@
|
|
46
46
|
|
47
47
|
|
48
48
|
|
49
|
+
読みこむJSONファイル内の、シングルクオートを一旦エスケープして、ファイル全体を
|
50
|
+
|
51
|
+
str_replaceでダブルクオートに置換してしまうですとか、、、
|
52
|
+
|
53
|
+
なんなり方法はありそうですが、、、正しく、スマートな方法をご教授くださいませ。
|
54
|
+
|
49
55
|
宜しくお願い致します。
|