I want to extract JSON between var data = {
and A.trigger
...
$images_script = <<<EOM
P.when('A').register("ImageBlockATF", function(A){
var data = {
'colorImages': { 'initial': [{"hiRes":"https://images-na.ssl-images-amazon.com/images/I/61z4lNt%2BjZL._SL1300_.jpg","thumb":"https://images-na.ssl-images-amazon.com/images/I/31%2BSEYm%2B8QL._SS40_.jpg","large":"https://images-na.ssl-images-amazon.com/images/I/31%2BSEYm%2B8QL.jpg",
"main":{"https://images-na.ssl-images-amazon.com/images/I/61z4lNt%2BjZL._SY355_.jpg":[355,355],"https://images-na.ssl-images-amazon.com/images/I/61z4lNt%2BjZL._SY450_.jpg":[450,450],"https://images-na.ssl-images-amazon.com/images/I/61z4lNt%2BjZL._SX425_.jpg":[425,425],"https://images-na.ssl-images-amazon.com/images/I/61z4lNt%2BjZL._SX466_.jpg":[466,466],"https://images-na.ssl-images-amazon.com/images/I/61z4lNt%2BjZL._SX522_.jpg":[522,522]},"variant":"MAIN"}]},
'colorToAsin': {'initial': {}},
'holderRatio': 1.0,
'holderMaxHeight': 700,
'weblabs' : {}
};
A.trigger('P.AboveTheFold'); // trigger ATF event.
return data;
});
EOM;
I have tried
$startsAt = strpos($out, "var data = {") + strlen("var data = {");
$endsAt = strpos($out, "A.trigger", $startsAt);
$result = substr($out, $startsAt, $endsAt - $startsAt);
and also have tried
preg_match('~var data =(.*?)A.trigger~', $images_script, $output);
But I am not able to get that JSON.
Can someone tell me how do I do that?