1 回答
TA贡献1836条经验 获得超13个赞
您的正则表达式中有一个小错误。您需要按如下方式转义方括号。您还需要对外壳使用大括号,因为这是“数据”中显示的实际哨兵:
preg_match("/window\['ads_imgs'\] = '{.*}'/", $data, $m);
不过,您可能只想要 json 本身。为此,您可以进行另一个正则表达式匹配,$m[0]如下所示:
preg_match("/{.*}/", $m[0], $j_str);
这是使用示例数据的完整测试:
$data = " window['ads_imgs'] = '{\"1734275\":\"https:\/\/media2.lajumate.ro\/media\/i\/cart\/5\/173\/1734275_chevrolet-aveo-5-usi_7.jpg\",\"a\":{\"b\":\"bb\"}}' ";
preg_match("/window\['ads_imgs'\] = '{.*}'/", $data, $m);
preg_match("/{.*}/", $m[0], $j_str);
$json = json_decode($j_str[0], true);
print_r($json);
输出:
Array
(
[1734275] => https://media2.lajumate.ro/media/i/cart/5/173/1734275_chevrolet-aveo-5-usi_7.jpg
[a] => Array
(
[b] => bb
)
)
- 1 回答
- 0 关注
- 101 浏览
添加回答
举报