我正在尝试清理我的CMS中的一些遗留内容,以统一标签的使用方式,我想从图像开始,但我遇到了一些问题。
图像标签中的内容,如alt,srcset,size,。。。不总是使用,并且当它被使用时,它并不总是以相同的顺序使用。我尝试了两种不同的角度来清理代码:
-
HTML解析
$dom = new DOMDocument;
$dom->loadHTML($html);
$images = $dom->getElementsByTagName('img');
foreach ($images as $image)
{
$image->setAttribute('class', 'blabla');
}
$html = $dom->saveHTML();
当我这样做时,图像类被正确地调整,但是$html中的许多div已经消失,而我没有修改它们。我原来有这样的东西:
<section id="mysection">
<div class="mydiv">test</div>
<section>
最后我说:
<section id="mysection">
test
<section>
由于第一种方法实际上使我的问题更加严重,我尝试使用REGEX。
-
正则表达式
/<img(.*)>/
然后我将分解结果以识别img中的所有标记。我的问题是正则表达式忽略了结尾
>
最后得到了大量不需要的html代码。它应该在第一次出现
>
我想html解析应该是这种操作的首选方法,但是解析会破坏我的代码。
你知道我应该用什么方法来解决这个问题吗?