【问题标题】:Get html between comments block Simple HTM DOM获取注释块之间的 html 简单的 HTML DOM
【发布时间】:2015-06-30 03:50:43
【问题描述】:

如何通过识别其“评论”标签来获取 DOM 块,例如

<!-- start block -->
<p>Hello world etc</p>
<div>something</div>
<!-- end of block -->

我正在使用简单的 PHP DOM 解析器,但文档不完整,http://simplehtmldom.sourceforge.net/manual.htm。如果我能用纯 PHP 做到这一点就很好。

【问题讨论】:

  • 这可能是可以使用正则表达式的时候之一。

标签: php html simple-html-dom


【解决方案1】:

您可以尝试先遍历元素,然后如果找到起始注释,请先跳过它,然后添加一个标志,该标志开始连接下一个元素。如果到达终点,停止串联:

$html_string = '<!-- start block -->
<p>Hello world etc</p>
<div>something</div>
<div>something2</div>
<!-- end of block -->
<div>something3</div>
';

$html = str_get_html($html_string);
// start point
$start = $html->find('*');
$output = ''; $go = false;
foreach($start as $e) {

    if($e->innertext === '<!-- start block -->') {
        $go = true;
        continue;
    } elseif($e->innertext === '<!-- end of block -->') {
        break;
    }

    if($go) {
        $output .= $e;
    }   
}

echo $output;

【讨论】:

  • @EltonJamie 是的,在标志开始后继续获取那些,一旦找到结尾,然后break
猜你喜欢
  • 1970-01-01
  • 2011-10-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-06
  • 1970-01-01
  • 1970-01-01
  • 2023-03-04
相关资源
最近更新 更多