Php 从选择框到阵列

Php 从选择框到阵列,php,regex,Php,Regex,我有一系列的选择框,我想从中获取数据,基本上将它们转换成一个数组。最有效的方法是什么?现在我在想 $html = file_get_contents('http://www.domain.com'); preg_match_all("/name\=\'subscription\[division_id\]\' style\=\'width: 170px;\'>(.+?)<\/select>/is", $html, $matches); $html=file\

我有一系列的选择框,我想从中获取数据,基本上将它们转换成一个数组。最有效的方法是什么?现在我在想

    $html = file_get_contents('http://www.domain.com');

    preg_match_all("/name\=\'subscription\[division_id\]\' style\=\'width: 170px;\'>(.+?)<\/select>/is", $html, $matches);
$html=file\u get\u contents('http://www.domain.com');
preg\u match\u all(“/name\=\'subscription\[division\u id\]\'style\=\'width:170px;\'>(.+?)/is”,$html,$matches);

然后我考虑运行其他代码将选项标记放入数组中,但这似乎有点不必要的密集性

如果出于任何原因进行抓取,您可能会使用php的DOMXPath命令解析页面的html。我无法写出所有代码,但您可以从以下内容开始:

$xpath = new DOMXPath($dom);
$select_values = $xpath->evaluate("/html/body//option");

然后通过一个循环运行所有内容,获取选项的内容。不管怎么说,有了这样的东西,你就可以避免使用regex的所有胡说八道。

你为了获取其他人的select内容而抓取他们的站点?如果HTML没有结束标记或类似的东西,DOMXPath会崩溃吗?它可以解决很多问题,尽管我不确定这个问题。选项没有结束标记?如果是这样的话,整个页面似乎都无法正常工作。