使用html dom解析器获取所有区域的标题

时间:2013-08-04 18:38:46

标签: php html dom domparser

试图获得所有标题=""区域的价值,但它只选择页面的主标题。 示例区域html:

<area shape="poly" title="Orkney" href="orkney" coords="" />

该页面有很多这些,我试图获取所有的标题名称 我的PHP:

function getTextBetweenTags($string, $tagname) {
    // Create DOM from string
    $html = str_get_html($string);

    $titles = array();
    // Find all tags 
    foreach($html->find($tagname) as $element) {
        $titles[] = $element->plaintext;
    }

    return $titles;
}


print_r(getTextBetweenTags($url, 'title'));

我得到的只是页面的标题,这是正确的方式,还是不能完成,感谢您的帮助:))

2 个答案:

答案 0 :(得分:0)

调用这样的方法:

print_r(getTextBetweenTags($url, 'area'));

因为您正在搜索区域标签。标题是一个论点。 See this documentation了解如何做到这一点。

答案 1 :(得分:0)

您需要查找<area>元素并返回其title属性

function getTextBetweenTags($string, $tagname) {
    // Create DOM from string
    $html = str_get_html($string);
    $titles = array();
    // Find all tags 
    foreach($html->find($tagname) as $element) {
        $titles[] = $element->title;
    }
    return $titles;
}

print_r(getTextBetweenTags($url, 'area'));

如果你使用$ url作为参数,你不应该使用file_get_html()代替str_get_html()吗?