用简单Html DOM获取无效的结构化属性


Fetching invalid structured attributes with Simple Html DOM

我试图获取一个锚标记,但它的结构很差。像这样:

<a  target='_blank' title='Some'href='somelink.html'>Link 1</a>
我试图通过使用 获得有效的属性
foreach($html->find('a') as $links)
 {
     var_dump($links->attr);
 }

var_dump清楚地表明href属性没有列在其他属性中。

如何找到锚?

$html = "<a  target='_blank' title='Some'href='somelink.html'>Link 1</a>";
//or $html = file_get_contents('example.html');
$dom = new DOMDocument();
@$dom->loadHTML($html);
$a = $dom->getElementsByTagName('a');
$nodes = array();
for ($i = 0; $i < $a->length; $i++) {
    $attr1 = $a->item($i)->getAttribute('target');
    $attr2 = $a->item($i)->getAttribute('title');
    $attr3 = $a->item($i)->getAttribute('href');
    $nodes[] = array('target'=>$attr1, 'title'=>$attr2, 'href'=>$attr3);
}
print_r($nodes);