需求这样的。
有一个富文本编辑器,提交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:00
思路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处理一下很方便呀
|