Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/261.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 dom删除字符串中的一个图像_Php_Dom - Fatal编程技术网

如何通过php dom删除字符串中的一个图像

如何通过php dom删除字符串中的一个图像,php,dom,Php,Dom,我有一个字符串,里面有一些 最后我用这个改变解决了这个问题…希望能帮助别人 $string = ' <img src="pic.jpg"> and <img src="pic2.jpg">'; $string='and'; $doc=新的DOMDocument('1.0','UTF-8'); libxml\u使用\u内部错误(true); $doc->loadHTML(mb_convert_编码($string,'HTML-ENTITIES','UTF-8'); l

我有一个字符串,里面有一些


最后我用这个改变解决了这个问题…希望能帮助别人

$string = '  <img src="pic.jpg">  and <img src="pic2.jpg">';
$string='and';
$doc=新的DOMDocument('1.0','UTF-8');
libxml\u使用\u内部错误(true);
$doc->loadHTML(mb_convert_编码($string,'HTML-ENTITIES','UTF-8');
libxml_clear_errors();
$imgs=$doc->getElementsByTagName('img');
$imgs1=$imgs2=array();
foreach($imgs作为$img){
如果($img->getAttribute('src')=='pic.jpg')
{
$imgs1[]=$img;
}
其他的
$imgs2[]=$img;
}
foreach($imgs1作为$img){
$img->parentNode->removeChild($img);
}
foreach($imgs2作为$img)
{
$img->setAttribute('class','image normall');
}
$string=$doc->saveHTML();
echo$字符串;

如果向后迭代,则可以删除节点

简单地改变

$string = '  <img src="pic.jpg">  and <img src="pic2.jpg">';
    $doc = new DOMDocument('1.0', 'UTF-8');
        libxml_use_internal_errors(true);
        $doc->loadHTML(mb_convert_encoding($string, 'HTML-ENTITIES', 'UTF-8'));
        libxml_clear_errors();
        $imgs = $doc->getElementsByTagName('img');
        $imgs1 = $imgs2 = array();
        foreach($imgs as $img) {
            if($img->getAttribute('src') == 'pic.jpg')
            {
                $imgs1[] = $img;
            }
            else
            $imgs2[] = $img;
        }
        foreach($imgs1 as $img) {
            $img->parentNode->removeChild($img);
        }
        foreach ($imgs2 as $img) 
        {

            $img->setAttribute('class', 'image normall');

        }
        $string = $doc->saveHTML();
        echo $string;


Ref:

我编辑了我的代码。请在php在线网页上运行此代码……我无法理解你的意思?哪一部分?我不想删除其他任何东西…对于其他类,我只想添加一个类…我想添加类到所有图片。代码是有效的。但是如果运行这个条件,
if($img->getAttribute('src')=='pic.jpg')
。。。。代码删除了那张图片…但无法为其他图片添加类。你是对的@Drakes,在这张图片上用10秒击败了我。投票结果是+10。好的
$string = '  <img src="pic.jpg">  and <img src="pic2.jpg">';
    $doc = new DOMDocument('1.0', 'UTF-8');
        libxml_use_internal_errors(true);
        $doc->loadHTML(mb_convert_encoding($string, 'HTML-ENTITIES', 'UTF-8'));
        libxml_clear_errors();
        $imgs = $doc->getElementsByTagName('img');
        $imgs1 = $imgs2 = array();
        foreach($imgs as $img) {
            if($img->getAttribute('src') == 'pic.jpg')
            {
                $imgs1[] = $img;
            }
            else
            $imgs2[] = $img;
        }
        foreach($imgs1 as $img) {
            $img->parentNode->removeChild($img);
        }
        foreach ($imgs2 as $img) 
        {

            $img->setAttribute('class', 'image normall');

        }
        $string = $doc->saveHTML();
        echo $string;
// Forward iteration
foreach ($imgs as $img) {
// Reverse iteration
for($i = $imgs->length; --$i >= 0;) {
     $img = $imgs->item($i);