php code to extract all text links not image link

2019-07-31 13:53发布

I want to extract all text link from a webpage using simplehtmldom class. But i don't want image links.

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

above code shows all anchor links containing href attribute.

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

i want only /contact and /about not /home because it contains image instead of text

3条回答
Root(大扎)
2楼-- · 2019-07-31 14:00

It is possible to do that in css and with phpquery as:

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

This is not a feature that will likely ever come to simple though.

查看更多
家丑人穷心不美
3楼-- · 2019-07-31 14:04
<?php

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

    echo $element->href . '<br>';
}
查看更多
混吃等死
4楼-- · 2019-07-31 14:04
<?
foreach($html->find('a[href]') as $element){
    if(!preg_match('%<img%', $element->href)){
        echo $element->href . '<br>';    
    }
}
?>
查看更多
登录 后发表回答