1

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 Answers 3

4
<?php

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

    echo $element->href . '<br>';
}
Sign up to request clarification or add additional context in comments.

Comments

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

1 Comment

it was typo. finally i have got solution by @katharas
0

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.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.