Regular expression extract a JavaScript variable in PHP

后端 未结 1 953
时光取名叫无心
时光取名叫无心 2020-12-10 09:26

I have a large HTML file, containing a lot of content. I want to get a JavaScript variable, named \'a\' for example, from the whole file.

Example: (dele

相关标签:
1条回答
  • 2020-12-10 09:43
    preg_match('#var a = (.*?);\s*$#m', $html, $matches);
    echo $matches[1];
    

    Explanation:

    • Regex will try to match any line containing var a =
    • It will then match everything up until a ;, any amount of spaces \s*, then the end of the line $
    • The m modifier will try to match each line independently, without it, the $ would just match then end of the string which would be a bit useless

    The any amount of spaces is only there in case you have some spaces after the definition, no other reason (e.g. human error). If you're sure that won't happen, you can remove \s*.

    Note that this doesn't replace a full-blown parser. You will need to make modifications if a is defined over more than one line, if a is defined more than once (think about scope, you can have var a on a global scope, then var a within a function), etc.

    0 讨论(0)
提交回复
热议问题