php代码提取所有文本链接而不是图像链接

时间:2013-03-22 18:45:18

标签: php simple-html-dom

我想使用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>

我只想/联系和/关于不/ home因为它包含图像而不是文本

3 个答案:

答案 0 :(得分:4)

<?php

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

    echo $element->href . '<br>';
}

答案 1 :(得分:0)

<?
foreach($html->find('a[href]') as $element){
    if(!preg_match('%<img%', $element->href)){
        echo $element->href . '<br>';    
    }
}
?>

答案 2 :(得分:0)

可以在css和phpquery中执行此操作:

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

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