【问题标题】:PHP Regex: Remove quotes of HTML attributes, including img srcPHP 正则表达式:删除 HTML 属性的引号,包括 img src
【发布时间】:2017-05-10 23:08:41
【问题描述】:

我有这个正则表达式:

//remove quotes from HTML attributes that does not contain spaces; keep quotes around URLs

var $result = preg_replace('/((\S)+\s*(?<!href)(?<!src)(=)\s*)(\"|\')(\S+)(\"|\')/','$1$5', $string);

它几乎按预期工作,我只需要对其进行调整,但有一个额外的例外:允许从“img”标签的“src”属性中删除引号。

有人可以给我小费吗?任何帮助将不胜感激。

【问题讨论】:

  • 为什么要取消引用属性值?
  • 我正在创建一个 html 缩小脚本以在网站内部运行。
  • 使用 DOM 解析器库而不是正则表达式来解析 HTML。
  • 难道没有你可以使用的 HTML miniifcation 库,而不是自己滚动吗?
  • 您需要使用 preg_replace_callback() 来执行此操作。首先匹配 img 标签,然后根据需要替换 src 属性上的引号。

标签: php regex replace preg-replace query-string


【解决方案1】:

通过改编发现了一个错误的编码解决方案,抱歉我不是正则表达式专家。

$imgTag = '<img src="image.jpg"/>';
$imgTag = preg_replace('/((\S)+\s*(?<=src)(=)\s*)(\"|\')(\S+)(\"|\')/','$1$5',$imgTag);

结果:

<img src=image.jpg/>

【讨论】:

    猜你喜欢
    • 2013-06-14
    • 2011-05-22
    • 1970-01-01
    • 1970-01-01
    • 2012-05-26
    • 1970-01-01
    • 2020-12-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多