空src或没有src时如何删除图像标签

时间:2018-10-04 02:56:55

标签: php regex preg-replace

$content = '<img src=""><img alt="test" width="400px"><a href="https://placeholder.com"><img src="https://via.placeholder.com/350x150"></a>';
$content = preg_replace('!(<a\s[^>]+>)?<img([^>]+)src=""([^>]*)>(</a>)?!i' , '' , $content );
echo $content;

但是只能删除src="",没有src就无法删除

<img alt="test" width="400px"><a href="https://placeholder.com"><img src="https://via.placeholder.com/350x150"></a>

1 个答案:

答案 0 :(得分:1)

使用正则表达式<img(?![^>]*(src="[^"]+"))[^>]*>

否定前瞻(?![^>]*(src="[^"]+")将不会捕获src="..."的img标签

Demo