我需要减少多于一个< br>或者< br />两个图像之间的标签只有一个.它需要足够自由以在图像中遇到任何类型的属性信息,任何元素之间的任何类型的空白和两种形式的中断.请注意,我不想影响< br />标签前面或尾随< img>标签,只有两个图像之间的标签.
这就是我正在使用的:
$content = preg_replace('/(<img[^>]*>)+\s*?(<br\/?>\s*?)+\s*?(<img[^>]*>)+/is','$1<br/>$3',$content);
这是一个例子
...
Some text here.<br>
<br><img src="http://www.domain.tld/image1.jpg"><br>
<img src="http://www.domain.tld/image2.jpg"><br><br/>
<img src="http://www.domain.tld/image3.jpg">
</div>
该模式应仅替换2 x< br>. image2和image3之间的标签.
我不知道为什么我的模式不起作用,你能看出我不是吗?
谢谢你的帮助!
编辑
仅供参考,我无法控制$content中的原始素材.
解决方法:
这应该工作:
preg_replace('/(<img[^>]*>\s*)(<br\s*\/?>(\s*))*(?=<img)/si', '\\1<br/>\\3', $content);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。