需求这样的。
有一个富文编辑器,提交html,内部会有图片内容。要求把所有img标签的width都设置为100%,同时删除style里的height属性和img标签本身的height属性。而img标签的属性顺序都不一样。比如:
<img src="" width="" /> <img width="" src="" /> <img width="" style="" src='' /> <img width='' src="">
这正则该咋写
<?php return preg_replace_callback('/???/',function($match}{ },$html);
![]() | 1 mhycy 2015-05-18 12:42:18 +08:00 先替换成无width状态, 然后再加回去~ |
![]() | 2 cevincheung OP @mhycy 我也这么想,but, 正则白痴,求正则- -# |
![]() | 3 p1n3 2015-05-18 12:53:31 +08:00 via iPhone 先提取src,然后再根据需要拼接回去 |
![]() | 4 mhycy 2015-05-18 12:54:07 +08:00 preg_replace("/(<img[^>]+?)width=['\"]+['\"]*['\"]+/","\\1width='100%'",$data); |
![]() | 5 w88975 2015-05-18 12:58:08 +08:00 正则不知道咋写 但是思路是先提取出页面所有的img标签存入list ##1. list[i].replace(' ',''),取出空格 再进行查找width='' or width="",如果有 则剔除width属性 ##2. 上面剔除后的 再进行查找style='' or style="" 如果有 则查找 height:(.*); 剔除这部分 |
![]() | 6 w88975 2015-05-18 12:59:49 +08:0 思路2 先提取出页面所有的img标签存入list 提取src的value 剔除所有img标签, 自己new一个img标签替换掉原来的,不过这个得看你的style里面有没有自己的样式 如果样式统一就可以这样做 |
![]() | 7 w88975 2015-05-18 13:00:36 +08:00 不一定非得用正则,能解决问题才是关键 |
![]() | 8 oott123 2015-05-18 14:49:47 +08:00 php 可以考虑用 phpQuery 不一定非得用正则的 |
![]() | 9 Septembers 2015-05-18 14:57:37 +08:00 |
10 lithium4010 2015-05-19 02:06:43 +08:00 via Android 前端jquery处理一下很方便呀 |