簡體   English   中英

正則表達式在PHP中提取JavaScript變量

[英]Regular expression extract a JavaScript variable in PHP

我有一個大的HTML文件,包含很多內容。 我想從整個文件中獲取一個名為'a'的JavaScript變量。

示例:(刪除了大量實際內容)

<html>
    <head>
        <script>
            var a = [{'a': 1, 'b': 2}];
        </script>
    </head>
    <body>
        ....
    </body>
</html>

應該從上面得到的是:

[{'a': 1, 'b': 2}]
preg_match('#var a = (.*?);\s*$#m', $html, $matches);
echo $matches[1];

說明:

  • 正則表達式將嘗試匹配包含var a =任何行
  • 然后它將匹配所有內容直到a ; ,任意數量的空格\\s* ,然后是行的結尾$
  • m修飾符將嘗試獨立匹配每一行,沒有它, $只會匹配字符串的結尾,這將是有點無用的

任何數量的空格只有在定義后有一些空格的情況下,沒有其他原因(例如人為錯誤)。 如果您確定不會發生這種情況,可以刪除\\s*

請注意,這不會取代完整的解析器。 您將需要進行修改,如果a是在多個行定義,如果a被定義不止一次(想想范圍,你可以有var a在全球范圍內,則var a函數內)等。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM