PHP - 使用preg_match()解析javascript数组

时间:2013-08-20 07:12:33

标签: php html-parsing preg-match

我在解析HTML页面时遇到问题。在javascript中有一个变量我需要获取它并将其放入json格式。

<script>
  var variable1 = "foo";
  var variable2 = "boo";
  var multipleArray = [
            {"var1":"1",
             "var2": [{
                 "var21":"Extra Lge",
                 "var22":"45923090470",
                 "var23": {"key1":"value1",
                           "key2":"value"}
                 }],
                 ...etc...
             }]
</script>

有没有简单的方法,如何获得var multipleArray以及所有键和值?我使用了preg_match()

preg_match("'var multipleArray = [\{.*?\}]'", $source, $matches );

但它返回$matches为空数组()。

我做错了什么?我与reg.ex.的经历在0级:(

我会很高兴有任何帮助:)非常感谢你:))

1 个答案:

答案 0 :(得分:0)

使用以下模式,您应该获得没有var multipleArray标识符的数组。

preg_match('/\[(\{(.*)\})\]/', $source, $matches );

现在要获取键值对,你必须解析它。 或者如果你想获得一个快速,肮脏和邪恶的胜利,你可以做到以下几点:

您使用str_replace()将每个':'替换为'=&gt;','[{'with'[','}]'替换为']','{'替换为'[','}'用']'。

使用结果字符串($ result)执行以下操作:

$result_array = null;
eval('$result_array = '.$result);

现在$ result_array包含你的数组。