在评论块之间获取 html 简单 HTM DOM
Get html between comments block Simple HTM DOM
如何通过识别其 'comment' 标签来获取 DOM 的块,例如
<!-- start block -->
<p>Hello world etc</p>
<div>something</div>
<!-- end of block -->
我正在使用简单 PHP DOM 解析器,但文档不完整,http://simplehtmldom.sourceforge.net/manual.htm。如果我能用纯 PHP 来做就好了。
您可以尝试先遍历元素,如果找到起始注释,先跳过它,然后添加一个标志,开始连接下一个元素。如果到达终点,停止连接:
$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;
如何通过识别其 'comment' 标签来获取 DOM 的块,例如
<!-- start block -->
<p>Hello world etc</p>
<div>something</div>
<!-- end of block -->
我正在使用简单 PHP DOM 解析器,但文档不完整,http://simplehtmldom.sourceforge.net/manual.htm。如果我能用纯 PHP 来做就好了。
您可以尝试先遍历元素,如果找到起始注释,先跳过它,然后添加一个标志,开始连接下一个元素。如果到达终点,停止连接:
$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;