我有一个包含大量内容的大型HTML文件。我想从整个文件中获取一个名为'a'
的JavaScript变量。
示例:(删除了大量实际内容)
<html>
<head>
<script>
var a = [{'a': 1, 'b': 2}];
</script>
</head>
<body>
....
</body>
</html>
以上应该是:
[{'a': 1, 'b': 2}]
答案 0 :(得分:11)
preg_match('#var a = (.*?);\s*$#m', $html, $matches);
echo $matches[1];
说明:
var a =
;
,任意数量的空格\s*
,然后行$
m
修饰符将尝试独立匹配每一行,如果没有它,$
只匹配字符串的结尾,这将是有点无用的 任何数量的空格仅在定义后有一些空格的情况下,没有其他原因(例如人为错误)。如果您确定不会发生,则可以删除\s*
。
请注意,这并不能取代成熟的解析器。如果a
定义在多行上,如果a
定义了多次(考虑范围,您可以在全局范围内var a
,则需要进行修改函数中的var a
等等。