0

私は持っている:

 <span>something or other</span>
 <b>blarg</b>
 <b>blarg and stuff</b>
 <span>blarg</span>
 <em>wakka wakka</em>
 <em>wakka blarg</em>
 <em>blarg</em>

そして、「blarg」のみを含み、他のテキストを含まない要素を取得したいだけです。

 <b>blarg</b>
 <span>blarg</span>
 <em>blarg</em> 

ここでの重要な問題は、blarg がページ上の 1 つの要素だけに存在するかどうかを確認しようとしていることです。私は正規表現である程度の運が良かったのですがsimple_html_dom、子要素と兄弟要素も見ることができるように、むしろそれをやりたいと思います。

これを行う最も簡単な方法を知っている人はいsimple_html_domますか?

4

1 に答える 1

0

それを行う方法は、すべてのタグを解析し、「blarg」が含まれているかどうかをテストすることです...

これが実際の例です:

$text = '<span>something or other</span>
 <b>blarg</b>
 <b>blarg and stuff</b>
 <span>blarg</span>
 <em>wakka wakka</em>
 <em>wakka blarg</em>
 <em>blarg</em>';

echo  "<div>Original Text: <xmp>$text</xmp></div>";

$html = str_get_html($text);

// Find all elements
$tags = $html->find('*');

foreach ($tags as $key => $tag) {
    // If text in tag contains 'blarg'
    if (strcmp(trim($tag->plaintext),'blarg') == 0) {
        echo  "<div> 'blarg' found in \$tags[$key]: <xmp>".$tag->outertext."</xmp></div>";
    }
}

あなたが何をしたいのかわかりませんが、これが始まりかもしれません:)

于 2013-08-23T19:11:11.280 に答える