Php 根据第一个子字符串和第二个子字符串拆分字符串

Php 根据第一个子字符串和第二个子字符串拆分字符串,php,html,curl,Php,Html,Curl,我有一个字符串形式的HTML文件代码,如下所示: --- few lines of code --------- <SCRIPT language="javascript" type="text/javascript"> var statList = new Array( 0, "192.168.1.179", "88-53-95-28-2B-AF", 194280, 101141053, 0, 0, 0, 0, 0, 0, 0, 0, 1, "192.168.1.170", "

我有一个字符串形式的HTML文件代码,如下所示:

--- few lines of code ---------

<SCRIPT language="javascript" type="text/javascript">
var statList = new Array(
0, "192.168.1.179", "88-53-95-28-2B-AF", 194280, 101141053, 0, 0, 0, 0, 0, 0, 0, 0, 
1, "192.168.1.170", "60-C5-47-10-37-FD", 132316, 65860791, 0, 0, 0, 0, 0, 0, 0, 0, 
2, "192.168.1.151", "68-5D-43-21-76-95", 9887, 3898646, 0, 0, 0, 0, 0, 0, 0, 0, 
3, "192.168.1.134", "6C-3E-6D-8C-FF-62", 26405, 7521875, 0, 0, 0, 0, 0, 0, 0, 0, 
4, "192.168.1.124", "04-F7-E4-78-D3-D0", 6189, 1791672, 0, 0, 0, 0, 0, 0, 0, 0, 
5, "192.168.1.121", "60-C5-47-10-40-92", 122657, 91113301, 0, 0, 0, 0, 0, 0, 0, 0);
</SCRIPT>

---- Few other lines of code ---------
——几行代码---------
var statList=新数组(
0,“192.168.1.179”,“88-53-95-28-2B-AF”,194280101141053,0,0,0,0,0,0,
1,“192.168.1.170”,“60-C5-47-10-37-FD”,13231665860791,0,0,0,0,0,0,
2、“192.168.1.151”、“68-5D-43-21-76-95”、98873898646、0、0、0、0、0、0、,
3、“192.168.1.134”、“6C-3E-6D-8C-FF-62”、26405、7521875、0、0、0、0、0、0、,
4,“192.168.1.124”,“04-F7-E4-78-D3-D0”,61891791672,0,0,0,0,0,0,
5、“192.168.1.121”、“60-C5-47-10-40-92”、1226571113301、0、0、0、0、0、0);
----其他几行代码---------
我想提取包含
数组
声明的


我可以用任何PHP函数执行此操作吗?

如果您可以找到一个清晰的分隔符,该分隔符只在字符串开头出现一次,而另一个分隔符只在字符串结尾出现一次,则可以轻松使用preg_match。否则,您仍然可以使用preg_match,但编写好的RegExp要困难得多。如果要提取IP/MAC数据,可以直接从RegExp开始。

这段代码怎么样

$content = file_get_contents('____URL_of_your_html____');
if(preg_match('/(var statList = new Array\(.*?\);)/si',$content,$matches)){
    echo $matches[1];
}

您的第一个和第二个块对我来说似乎完全相同?我已经在脚本代码上方和下方编写了要跳过的“几行代码”。您不需要任何内存捕获,应该使用ungreedy匹配。您忘记了
/s
修饰符。