2013-03-22 84 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))') 

這不是一個可能會很簡單的功能。