V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
cevincheung
V2EX  ›  正则表达式

求个正则

  •  
  •   cevincheung · 2015-05-18 12:40:33 +08:00 · 1761 次点击
    这是一个创建于 3479 天前的主题,其中的信息可能已经有所发展或是发生改变。

    需求这样的。

    有一个富文本编辑器,提交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);
    
    10 条回复    2015-05-19 02:06:43 +08:00
    mhycy
        1
    mhycy  
       2015-05-18 12:42:18 +08:00
    先替换成无width状态, 然后再加回去~
    cevincheung
        2
    cevincheung  
    OP
       2015-05-18 12:43:33 +08:00
    @mhycy 我也这么想,but, 正则白痴,求正则- -#
    p1n3
        3
    p1n3  
       2015-05-18 12:53:31 +08:00 via iPhone
    先提取src,然后再根据需要拼接回去
    mhycy
        4
    mhycy  
       2015-05-18 12:54:07 +08:00
    preg_replace("/(<img[^>]+?)width=['\"]+['\"]*['\"]+/","\\1width='100%'",$data);
    w88975
        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:(.*); 剔除这部分
    w88975
        6
    w88975  
       2015-05-18 12:59:49 +08:00
    思路2
    先提取出页面所有的img标签存入list
    提取src的value
    剔除所有img标签, 自己new一个img标签替换掉原来的,不过这个得看你的style里面有没有自己的样式
    如果样式统一就可以这样做
    w88975
        7
    w88975  
       2015-05-18 13:00:36 +08:00
    不一定非得用正则,能解决问题才是关键
    oott123
        8
    oott123  
       2015-05-18 14:49:47 +08:00
    php 可以考虑用 phpQuery
    不一定非得用正则的
    Septembers
        9
    Septembers  
       2015-05-18 14:57:37 +08:00
    - 正则适合分析结构固定的数据
    - 主题内容而言在前端可以预处理清理下 到后端再清理清理
    - @oott123 这种情况的确适合处理成DOM再处理
    lithium4010
        10
    lithium4010  
       2015-05-19 02:06:43 +08:00 via Android
    前端jquery处理一下很方便呀
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5615 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 08:48 · PVG 16:48 · LAX 00:48 · JFK 03:48
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.