1

simplehtmldomクラスを使用してWebページからすべてのテキストリンクを抽出したいと思います。しかし、私は画像リンクを望んでいません。

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

テキストではなく画像が含まれているため、/contactと/aboutではなく/homeのみが必要です

4

3 に答える 3

4
<?php

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

    echo $element->href . '<br>';
}
于 2013-03-22T18:57:57.087 に答える
0
<?
foreach($html->find('a[href]') as $element){
    if(!preg_match('%<img%', $element->href)){
        echo $element->href . '<br>';    
    }
}
?>
于 2013-03-22T18:50:34.810 に答える
0

これは、cssおよびphpqueryで次のように行うことができます。

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

ただし、これは簡単になる可能性が高い機能ではありません。

于 2013-03-22T22:05:36.743 に答える