【发布时间】:2016-06-24 22:37:02
【问题描述】:
我正在尝试从图像中删除一些属性,但它只删除了属性的名称并保留了其余的..
我有一张如下图所示:
<img class="aligncenter size-full wp-image-sd174" src="http://www.blahblah.com/wp-content/uploads/2016/06/07d333r.jpg" alt="alt title" srcset="http://www.blahblah.com/wp-content/uploads/2016/06/07d333r.jpg 700w, http://www.blahblah.com/wp-content/uploads/2016/06/07d333r.jpg 241w, http://www.blahblah.com/wp-content/uploads/2016/06/07d333r.jpg 624w" sizes="(max-width: 700px) 100vw, 700px" height="870" width="700">
我想删除除<img src="image path">之外的所有内容
我尝试了下面的代码,但它只删除了属性的名称.. 例如 srcset。
$html = "<img class="aligncenter size-full wp-image-sd174" src="http://www.blahblah.com/wp-content/uploads/2016/06/07d333r.jpg" alt="alt title" srcset="http://www.blahblah.com/wp-content/uploads/2016/06/07d333r.jpg 700w, http://www.blahblah.com/wp-content/uploads/2016/06/07d333r.jpg 241w, http://www.blahblah.com/wp-content/uploads/2016/06/07d333r.jpg 624w" sizes="(max-width: 700px) 100vw, 700px" height="870" width="700">";
$one = preg_replace('#(<img.+?)srcset=(["\']?)\d*\2(.*?/?>)#i', '$1$3', $html);
$two= preg_replace('#(<img.+?)sizes=(["\']?)\d*\2(.*?/?>)#i', '$1$3', $one);
【问题讨论】:
-
我可能更喜欢反过来做,只需获取 src 属性并创建一个新的
imgtag -
如何对 html 字符串中的所有图像执行此操作?
-
如果您的字符串包含的不仅仅是一个图像标签,您可能是shouldn't be using a regex。 HTML确实需要解析,看看DOMDocument
标签: php regex preg-replace preg-match-all