【发布时间】:2012-12-10 20:25:55
【问题描述】:
我正在使用 simplehtmldom 从站点中获取 html。然后我搜索页面上的所有 div 并 显示字数大于 300 的内部文本。为此,我使用 foreach 进行迭代。
$findDivs = $html->find('div');
foreach($findDivs as $findDiv) {
$wordCount = explode(' ', $findDiv->outertext);
$wordCount = count($wordCount);
if($wordCount <= 300) {
$findDiv->outertext = '';
}
else {
echo $findDiv->outertext . '<br />';
}
}
我遇到的问题是结果重复了 6 次。我只能假设这是因为每次迭代都会循环所有 div。但是,我不确定我可以使用什么技术来确保每个 div 只被评估一次。
【问题讨论】:
-
递归迭代 div,如果 div 包含超过 300 个单词,则不处理 div 的子级。
-
请提供示例 html。否则你不太可能得到建设性的帮助。
标签: php web-scraping simple-html-dom