1

我想使用 simplehtmldom 类从网页中提取所有文本链接。但我不想要图片链接。

<?
foreach($html->find('a[href]') as $element)
       echo $element->href . '<br>'; 
?>

上面的代码显示了所有包含 href 属性的锚链接。

<a href="/contact">contact</a>
<a href="/about">about</a>
<a herf="/home"><img src="logo.png" /><a>

我只想要 /contact 和 /about 而不是 /home,因为它包含图像而不是文本

4

3 回答 3

4
<?php

foreach($html->find('a[href]') as $element)
{
    if (empty(trim($element->plaintext)))
        continue;

    echo $element->href . '<br>';
}
于 2013-03-22T18:57:57.087 回答
0
<?
foreach($html->find('a[href]') as $element){
    if(!preg_match('%<img%', $element->href)){
        echo $element->href . '<br>';    
    }
}
?>
于 2013-03-22T18:50:34.810 回答
0

可以在 css 和 phpquery 中做到这一点:

$html->find('a:not(:has(img))')

不过,这不是一个可能会变得简单的功能。

于 2013-03-22T22:05:36.743 回答