Sunny
Sunny

Reputation: 119

php code to extract all text links not image link

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

Upvotes: 1

Views: 486

Answers (3)

pguardiario
pguardiario

Reputation: 55002

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.

Upvotes: 0

katharas
katharas

Reputation: 401

<?php

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

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

Upvotes: 4

Unamata Sanatarai
Unamata Sanatarai

Reputation: 6647

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

Upvotes: 0

Related Questions