如何从字符串中清除所有非jpg的img标签?

问题描述 投票:-2回答:1

如何在PHP中清除HTML字符串中所有非jpg或gif扩展名的文件中的标签。

我必须从一个字符串中删除所有的img标签,如果src的扩展名不是jpg或gif。

到目前为止,我试过。

$dom=new domDocument;
$dom->loadHTML($content);
$dom->preserveWhiteSpace=false;
$images=$dom->getElementsByTagName('img');
foreach($images as $image)
{
    $ea=array('gif','png','bmp','jpg','jpeg');
    $ext=pathinfo($image->getAttribute('src'), PATHINFO_EXTENSION);
    if(!in_array(strtolower($ext),$ea))
    {
        $image->removeAttribute('src');
    }
}
$cleanc=$dom->saveHTML();

但这太慢了,而且只删除了源文件。

php image tags
1个回答
0
投票

嗯,DOMDocument不会特别快。如果你想删除图片而不仅仅是它的 src,可以试试。

if(!in_array(strtolower($ext),$ea))
{
    $parent = $image->->parentNode;
    $parent->removeChild($image);
}
© www.soinside.com 2019 - 2024. All rights reserved.