繁体   English   中英

DOMDocument:查找div,获取内容并在不使用div的情况下进行打印

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM