2013-03-22 43 views
1

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

<? 
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> 

我想要的只是/接触和/约不是/家,因为它包含了图像而不是文字

回答

4
<?php 

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

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

其不工作 – Sunny 2013-03-22 18:57:08

+0

@Sunny你确定你有'img'而不是'image'? Y我们的问题有打字错误。 – 2013-03-22 18:59:35

+1

这是错字。最后我通过@katharas得到了解决方案 – Sunny 2013-03-22 19:12:18

0

这是可以做到的,在CSS并用phpquery为:

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

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