我目前正在使用PHP的file_get_contents($url)
来获取网址中的内容。获取内容后,我需要检查给定的HTML块,找到具有给定名称属性的'select'
,提取其选项及其值文本。我不知道如何解决这个问题,我可以使用PHP的 simplehtmldom 类来解析html,但是如何获得名为'union'的特定'select'
<span class="d3-box">
<select name='union' class="blockInput" >
<option value="">Select a option</option> ..
页面可以有多个“选择”框,因此我需要专门按名称属性查看
<?php
include_once("simple_html_dom.php");
$htmlContent = file_get_contents($url);
foreach($htmlContent->find(byname['union']) as $element)
echo 'option : value';
?>
感谢任何形式的帮助。提前谢谢。
答案 0 :(得分:4)
试试这个PHP代码:
<?php
require_once dirname(__FILE__) . "/simple_html_dom.php";
$url = "Your link here";
$htmlContent = str_get_html(file_get_contents($url));
foreach ($htmlContent->find("select[name='union'] option") as $element) {
$option = $element->plaintext;
$value = $element->getAttribute("value");
echo $option . ":" . $value . "<br>";
}
?>
答案 1 :(得分:2)
怎么样:
$htmlContent = file_get_html('your url');
$htmlContent->find('select[name= "union"]');
以面向对象的方式:
$html = new simple_html_dom();
$htmlContent = $html->load_file('your url');
$htmlContent->find('select[name= "union"]');
答案 2 :(得分:1)
来自DOMDocument文档:http://www.php.net/manual/en/class.domdocument.php
$html = file_get_contents( $url );
$dom = new DOMDocument();
$dom->loadHTML( $html );
$selects = $dom->getElementsByTagName( 'select' );
$select = $selects->item(0);
// Assuming all children are options.
$children = $select->childNodes;
$options_values = array();
for ( $i = 0; $i < $children->length; $i++ )
{
$item = $children->item( $i );
$options_values[] = $item->nodeValue;
}