Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php DOMDocument:查找div,获取内容,打印时不带div_Php_Wordpress_Domdocument - Fatal编程技术网

Php DOMDocument:查找div,获取内容,打印时不带div

Php DOMDocument:查找div,获取内容,打印时不带div,php,wordpress,domdocument,Php,Wordpress,Domdocument,我想使用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> &l

我想使用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 you

这里有一种快速而肮脏的使用正则表达式的方法:

$string = preg_replace('~</?div[^>]*>~', '', $string);

注意:就像我说的,这是一种快速而肮脏的方式。如果你确定你的输入-使用这个。但是,如果要过滤不确定的输入,最好对其进行正确的解析。

这里有一种使用正则表达式的快捷方法:

$string = preg_replace('~</?div[^>]*>~', '', $string);

注意:就像我说的,这是一种快速而肮脏的方式。如果你确定你的输入-使用这个。但是,如果您要过滤不确定的输入,最好对其进行正确的解析。

我刚刚测试了这个,我认为这正是您需要的。基本上,将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;

我刚刚测试了这个,我想这是你需要的。基本上,将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;

太棒了,它能工作!!我理解你的意思,我想更仔细地分析它,这就是为什么我要调查DOMDocument,但现在它很好。很好,它很有效!!我理解你们的意思,我想更仔细地分析它,这就是为什么我要调查DOMDocument,但现在它很棒。我喜欢这个答案,更简洁。我以前没有见过C14N函数。我喜欢这个答案,更简洁。我以前从未见过C14N函数。我们的答案非常相似!老实说,我认为你的答案也一样好。我们的答案非常相似!如果我诚实的话,我认为你的也一样好。