我读过这篇文章 - 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类,但不知道如何使用它。
答案 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>