[英]DOMDocument : Find div, get contents and print without div
我想使用DOMDocument或其他建议的方法在wordpes中执行以下操作:
我将此HTML保存在变量中:
<div id="gallery-3232" class="gallery gallery-3232">
<li><a href=""><img src="" alt="" /></li>
<li><a href=""><img src="" alt="" /></li>
<li><a href=""><img src="" alt="" /></li>
<li><a href=""><img src="" alt="" /></li>
</div>
我想最后得到一个包含该变量的变量:
<li><a href=""><img src="" alt="" /></li>
<li><a href=""><img src="" alt="" /></li>
<li><a href=""><img src="" alt="" /></li>
<li><a href=""><img src="" alt="" /></li>
我该如何执行但没有javascript。 与PHP配合使用。
谢谢你
我刚刚测试了一下,我认为这就是您所需要的。 基本上将HTML加载到DOMDocument中,通过ID获取所需的元素,然后遍历其子节点并输出:
$html = '<div id="gallery-3232" class="gallery gallery-3232">
<li><a href=""><img src="" alt="" /></li>
<li><a href=""><img src="" alt="" /></li>
<li><a href=""><img src="" alt="" /></li>
<li><a href=""><img src="" alt="" /></li>
</div>
';
$doc = new DomDocument();
$doc->loadHtml($html);
$div = $doc->getElementById('gallery-3232');
$output = '';
foreach($div->childNodes as $element)
{
$output .= $element->ownerDocument->saveHtml($element);
}
echo $output;
$source = '<div id="gallery-3232" class="gallery gallery-3232">
<li><a href=""><img src="" alt="" /></li>
<li><a href=""><img src="" alt="" /></li>
<li><a href=""><img src="" alt="" /></li>
<li><a href=""><img src="" alt="" /></li>
</div>';
$list = new DOMDocument();
$list->loadHTML($source);
$listItems = $list->getElementsByTagName('li');
$listString = "";
foreach ($listItems as $list) {
$listString .= $list->C14N();
}
echo $listString;
这是使用正则表达式的一种快速而肮脏的方法:
$string = preg_replace('~</?div[^>]*>~', '', $string);
注意:就像我说的那样,这是一种快速而肮脏的方法。 如果您确定自己的输入-使用此。 但是,如果要过滤不确定的输入,最好对它进行正确的解析。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.