html / php-使用HTML解析或正则表达式清除图片?

时间:2018-12-27 16:04:28

标签: php preg-replace html-parsing

我试图在CMS中清除一些旧内容,以统一使用标签的方式,我想从图片开始,但是遇到了一些问题。

并非总是使用图像标签中的内容,例如alt,srcset,sizes ...,并且在使用时,并非总是以相同的顺序使用。我尝试了两种不同的方式来清理代码:

  1. HTML解析

我已经尝试使用以下代码通过PHP简单的html dom和PHP替代方法:(这只是一个示例,我不希望将类设置为“ blabla”)

$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。

  1. REGEX

我通过使用以下模式进行了简单的操作:/<img(.*)>/,然后爆炸结果以标识img中的所有标签。我在这里遇到的问题是REGEX忽略了表达式的结尾>并最终接受了大量不需要的html代码。它应该在>的第一次出现时停止,但是我不知道该怎么做。

我认为html解析应该是这种操作的首选方法,但是解析会破坏我的代码。

您是否知道应该使用哪种方法来解决此问题?

0 个答案:

没有答案