刮两个元素

时间:2013-03-03 02:04:11

标签: php

我试图从页面中抓取两个不同的东西,如果我只刮取链接然后我可以做一个foreach并获得链接但我也想要代表该链接的标题。

以下是页面标记的示例

<div id="parent">
<span id="title">Title</span>


<div id="Two">
<a href="somelink">Somelink</a>
</div>
</div>

以下是获取标题和链接的示例

foreach($html->find('div[id=Two] a') as $a){
echo $a->href;
}

foreach($html->find('span[id=title]') as $az){
echo $az->plaintext;
}

但我需要它们在一个循环中,所以我可以拥有标题及其各自的链接

这样的东西
foreach($html->find('span['id=title'] as $a, div[id=Two] a') as $aa){

虽然那不会起作用

我使用简单的html dom

2 个答案:

答案 0 :(得分:0)

我认为这应该有用,前提是总是有标题和链接:

$links = $html->find('div[id=Two] a');
$titles = $html->find('span[id=title]');

foreach ($links as $i => $a)
{
    echo $titles[$i]->plaintext;
    echo $a->href;
}

答案 1 :(得分:0)

根本没有测试,但这样的事情应该有用。您可能需要添加验证检查以确保每个标题都有链接。

foreach($html->find('div[id=parent]') as $parent) {
    $title = $parent->find('span[id=title]')->plaintext;
    $href = $parent->find('div[id=Two] a')->href;

    echo $title . ': ' . $href . '<br />';
}