我有:
<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是否仅存在于页面上的一个元素内。我对正则表达式有一些好运,但我宁愿用simple_html_dom
来做,所以我也可以看看孩子和兄弟元素。
有谁知道使用simple_html_dom
执行此操作的最简单方法是什么?
答案 0 :(得分:0)
一种方法是解析每个标记,并测试它是否包含&#39; blarg&#39; ...
这是一个有效的例子:
$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>";
}
}
我不知道你想做什么,但这可能是一个开始:)