PHP:如何在html中找到具有特定名称属性的元素(来自url)

时间:2014-03-27 02:59:11

标签: php html file-get-contents

我目前正在使用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'; 
?>

感谢任何形式的帮助。提前谢谢。

3 个答案:

答案 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;
}