如何在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();
但这太慢了,而且只删除了源文件。
嗯,DOMDocument不会特别快。如果你想删除图片而不仅仅是它的 src,可以试试。
if(!in_array(strtolower($ext),$ea))
{
$parent = $image->->parentNode;
$parent->removeChild($image);
}