1 回答

TA貢獻1836條經(jīng)驗 獲得超13個贊
您的正則表達式中有一個小錯誤。您需要按如下方式轉(zhuǎn)義方括號。您還需要對外殼使用大括號,因為這是“數(shù)據(jù)”中顯示的實際哨兵:
preg_match("/window\['ads_imgs'\] = '{.*}'/", $data, $m);
不過,您可能只想要 json 本身。為此,您可以進行另一個正則表達式匹配,$m[0]如下所示:
preg_match("/{.*}/", $m[0], $j_str);
這是使用示例數(shù)據(jù)的完整測試:
$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 關(guān)注
- 150 瀏覽
添加回答
舉報