如何使用php为jsondecode预匹配all

如何使用php为jsondecode预匹配all,php,parsing,preg-match-all,Php,Parsing,Preg Match All,我需要解析以下字符串,然后通过json_decode运行它。我的代码如下。现在我无法使用json_decode,因为我无法正确解析字符串,因为它有多个json实例,我需要让preg_match_将其分解为{},{},{} 代码 您可以使用preg_match_all,接受组上的[and]太regex:/var\smessages\s\=\s\[.*?\]\;/。因此,在JSON_解码之后,在数组[1]中有零个或多个JSON有效字符串语法 现在要调用此值,可以使用foreach: 注意,json_

我需要解析以下字符串,然后通过json_decode运行它。我的代码如下。现在我无法使用json_decode,因为我无法正确解析字符串,因为它有多个json实例,我需要让preg_match_将其分解为{},{},{}

代码

您可以使用preg_match_all,接受组上的[and]太regex:/var\smessages\s\=\s\[.*?\]\;/。因此,在JSON_解码之后,在数组[1]中有零个或多个JSON有效字符串语法

现在要调用此值,可以使用foreach:

注意,json_解码在第二个参数上接收到true。它告诉这个函数需要返回一个数组,而不是一个对象stdClass


看一看:

为什么不在赛前比赛中将[]也分组?因此,您可以使用json_解码并获得一个数组。@David Rodrigues很好地使用了不止一组json数据,因此即使我这样做,json_解码也无法读取它。请查看是否是您需要的:啊。。。你说存在多个var消息?如果我是对的,就使用preg\u match\u all。此处:注意数组[1]匹配
$source = getHTML($URL); //get page source with curl
preg_match('/var\smessages\s\=\s\[(.*?)\]\;/', $source , $json);

echo $json_final = json_decode($json[0]);
echo $json_final_2 = json_decode($json[1]);
foreach($json[1] as $messages) {
    $messages = json_decode($messages, true);
    foreach($messages as $message) {
        // Do what you need with the message here!
        echo "{$message[CreationTime]}: {$message[MessageText]}<br />";
    }
}