删除不包含src属性的html中的img

时间:2015-05-06 16:48:16

标签: php html regex dom preg-replace

我需要删除包含preg_match和PHP

的非包含src属性的html中的所有img元素

类似的东西:

<html>
 <img src="someurl" alt="something"  />
 <img  alt="something"  />
<html />

<html>
 <img src="someurl" alt="something"  />
<html />

1 个答案:

答案 0 :(得分:2)

如果你的老板坚持正则表达式,并且(s)他没有听到智慧的声音,你可以试试以下正则表达式:

(?si)\s*<img\b(?>(?!src=).)*?\/>\s*

请参阅demo on regex101

示例PHP代码:

$re = "/(?si)\\s*<img\\b(?>(?!src=).)*?\\/>\\s*/"; 
$str = "<html>\n <img src=\"someurl\" alt=\"something\"  />\n <img  alt=\"something\"  />\n <img  alt=\"somethingelse\"\n       att='val'  />\n<html />"; 
$result = preg_replace($re, "", $str);