【问题标题】:PHP simplehtmldom read only viewable textPHP simplehtmldom 只读可见文本
【发布时间】:2014-12-22 10:26:37
【问题描述】:

我有以下html格式

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

我想使用 php simplehtmldom 仅提取“这是可见的”部分。

有没有办法直接做呢?

【问题讨论】:

  • 拜托,你能简单解释一下吗?

标签: php screen-scraping simple-html-dom


【解决方案1】:

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

$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 

【讨论】:

    【解决方案2】:

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

    简而言之,没有简单的方法可以达到预期的效果。

    【讨论】:

      猜你喜欢
      • 2013-01-20
      • 1970-01-01
      • 2015-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-26
      • 2014-09-17
      • 1970-01-01
      相关资源
      最近更新 更多