获取具有相同类名的多个div标签的内容

时间:2015-01-08 18:11:04

标签: php html

我读过这篇文章 - Get DIV content from external Website。我获得了file_get_contents()函数的网站源代码,我必须从中提取两个具有相同类名的div。

我有类似的问题,但是div具有相同的类名。例如。我有这样的代码:

<div class="baaa">
Some conete
</div>
<div class="baaa">
Second Content
</div>

我想获得这两个div的两个内容。在第一条中接受的解决方案只支持一个支持。我的预期结果是这样的数组:

$divs[0] = "Some conete"
$divs[1] = "Second Content"

请告诉我该怎么做。我读了DOMDocument类,但不知道如何使用它。

4 个答案:

答案 0 :(得分:1)

我使用了简单的html dom解析器,你的内容可以提取为

$html = file_get_html('your html file link');
$k=1;
foreach($html->find('div.baaa') as $e){
        $divs[$k]=$e;
        $k++;
    }
echo $divs[1]."<br>";
echo $divs[2];

答案 1 :(得分:0)

您可以使用XPath。 XPath是XML的查询语言。有PHP函数支持Xpath。 对你来说,例子可能是:

档案test.html

<html>
<body>
<div class="baaa">
Some conete
</div>
<div class="baaa">
Second Content
</div>
</body>
</html>

用“baaa”类提取div的内容的php代码

$xml = simplexml_load_file('test.html');
$data = $xml->xpath('//div[@class="baaa"]/text()');
foreach($data as $row) {
    printf($row);
}

生成以下输出:

Some conete
Second Content

如果您需要更复杂的搜索或分析,请查找XPath教程。

答案 2 :(得分:-1)

尝试使用您的数据:

$file_contents = file_get_contents('http://address.com');
preg_match_all('/<div class=\"baaa\">(.*?)<\/div>/s',$file_contents,$matches);
print_r($matches);

BTW:Polskarządzi:)

答案 3 :(得分:-1)

<script type="text/javascript">
$(document).ready(function(){
    $('.baaa').each(function(){
        alert($(this).text());
    });
});
</script>

<div class="baaa">
Some conete
</div>
<div class="baaa">
Second Content
</div>