DOMDocument:查找div,获取内容并在没有div的情况下打印

发布于 2024-12-29 20:05:44 字数 809 浏览 0 评论 0原文

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

谢谢你

I would like to use DOMDocument or another proposed method to do the following in wordpess:

I have this html saved in a variable:

<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>

And I would like to end up with a variable containing that:

<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>

How can I do this but without javascript. With the use of PHP.

Thabnk you

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

乖不如嘢 2025-01-05 20:05:44
$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;
$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;
谁与争疯 2025-01-05 20:05:44

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

I just tested this, I think it's what you require. Basically load the HTML into a DOMDocument, get the element you need by ID and then iterate through its child nodes and output:

$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;
清风不识月 2025-01-05 20:05:44

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

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

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

Here's a quick and dirty way using a regex:

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

Note: like I said, this is a quick and dirty way. If you're sure of your input - use this. However, if you are filtering uncertain input, you'd be better off parsing it properly.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文