如何通过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);