0

我在解析 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 级 :(

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

4

1 回答 1

0

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

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

现在要获取键值对,您必须对其进行解析。或者,如果您想获得快速、肮脏和邪恶的胜利,您可以执行以下操作:

您使用 str_replace() 将每个 ':' 替换为 '=>',将 '[{' 替换为 '[','}]' 替换为 ']','{' 替换为 '[','}' 替换为 ']' .

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

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

现在 $result_array 包含您的数组。

于 2013-08-20T10:05:09.157 回答