我想使用DOMDocument或其他提议的方法在wordpess中执行以下操作:
我将这个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。
Thabnk你
答案 0 :(得分:2)
我刚试过这个,我认为这就是你所需要的。基本上将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;
答案 1 :(得分:2)
$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;
答案 2 :(得分:1)
这是使用正则表达式快速而肮脏的方式:
$string = preg_replace('~</?div[^>]*>~', '', $string);
注意:就像我说的,这是一种快速而肮脏的方式。如果您确定输入 - 请使用此功能。但是,如果您要过滤不确定的输入,那么最好正确解析它。