我认为对此的答案可能很简单,但我很难过。我正在使用以下一小段代码从一些html中获取信息然后将其写入数据库。 (目前只显示它)
foreach($html->find('div[class=posttitle front] a, div[class=copy post] a') as $a){
$articles[] = array($a->href,$a->innertext);
}
foreach($articles as $item) {
echo "<p>";
$href = $item[0];
echo "</p><p>";
echo $href;
echo "</p><p>";
echo $item[2];
echo "</p>";
}
代码工作正常。我得到了我需要的一切。但是由于多个选择器返回的信息是针对同一个链接的,因此对于每个链接我都会得到一个$ articles [0 [,和每个选择器的$ articles [1])。
基本上这两个选择器有关于同一链接的信息。
我不确定如何要求更清楚,抱歉。基本上我想要的是$ articles [0],[1],[2],[3]。
谢谢
答案 0 :(得分:0)
据我了解,您希望在数组中创建唯一比较href
的记录。您应该使用href
作为数组的键:
foreach($html->find('div[class=posttitle front] a, div[class=copy post] a') as $a){
$articles[$a->href] = $a->innertext;
}
foreach($articles as $href=>$innertext) {
echo "<p>";
echo "</p><p>";
echo $href;
echo "</p><p>";
echo $innertext;
echo "</p>";
}
答案 1 :(得分:0)
由于无法使用DOM执行此操作,因此我采用了不同的路线。我在初始示例中使用了代码,但从我搜索的内容中删除了一个属性。我抓住了两个div标签的innertext。写到我的数据库然后用正则表达式获取信息要容易得多。
DOM非常适合非凌乱的HTML。