PHP simplehtmldom 只读可查看文本


PHP simplehtmldom read only viewable text

我有以下html格式

 <p>This is viewable <span style="display:none">This is not viewable</span></p>

我想使用 php simplehtmldom 来提取"这是可见的"部分。

有没有直接做

当然可以,只需删除该文本:

$str = '<p>This is viewable <span style="display:none">This is not viewable</span></p>';
$html = str_get_html($str);
foreach($html->find('[style*=display:none]') as $el){
  $el->innertext = '';
}
echo $html->find('p', 0)->text();
// This is viewable 

不,SimpleHTMLDOM 只是一个 DOM 解析器,它不会以任何有意义的方式处理属性,更不用说处理内联样式了。为了正确地完成您打算实现的目标,它还需要能够处理扩展的内联样式,例如style="anyother:'attribute';display:none"和隐藏内容的替代方法,例如visibility:hiddenopacity:0,或出色的内容,例如-webkit-transform:rotateY(90deg)

简而言之,没有简单的方法可以实现预期的结果。