【问题标题】:PHP Regex Search and Replace img 'src' Attribute to 'data-src'PHP 正则表达式搜索并将 img 'src' 属性替换为 'data-src'
【发布时间】:2015-05-11 12:11:53
【问题描述】:

我想要一个正则表达式代码,将所有“src”字符串替换为“data-src”,仅用于 img 标签。

这是一个例子:

<p>Lorem ipsum dolor sit amet.</p>

<p><img src="http://www.domain.com/images/test.jpg"></p>

<p>Lorem ipsum dolor sit amet.</p>

<p><iframe src="https://www.test.com/embed/4PJWKNOQIf4?list=PLMf7VY8La5RFDHl_LirAIRK1fhxBWIhqx" frameborder="0" width="300" height="169"></iframe></p>

应该是:

<p>Lorem ipsum dolor sit amet.</p>

<p><img data-src="http://www.domain.com/images/test.jpg"></p>

<p>Lorem ipsum dolor sit amet.</p>

<p><iframe src="https://www.test.com/embed/4PJWKNOQIf4?list=PLMf7VY8La5RFDHl_LirAIRK1fhxBWIhqx" frameborder="0" width="300" height="169"></iframe></p>

所以,这意味着 img 标签中的所有“src”属性都应该替换为“data-src”。

我尝试使用此正则表达式模式,但它不起作用。

对不起我的英语。

谢谢。

【问题讨论】:

  • 您在尝试自己解决这个问题时遇到了什么困难?
  • 如果您将src 替换为data-src,您的图像将不再可见。您应该从不使用正则表达式解析 HTML。请改用a PHP DOM parser
  • 我同意 Jay Blanchard 的观点,您不应该使用正则表达式解析 HTML,而应该使用真正的解析器 -- 但是 -- 您错过了显示您正在尝试的正则表达式?

标签: php html regex expression


【解决方案1】:

使用 DOM Parser.. 但是如果你想用正则表达式来做,你可以使用以下来匹配:

(<img\s*?)src

并替换为:

$1data-src

如果您在src 之前使用其他属性,则可以使用以下属性:

(<img.*?)src

DEMO

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-09
    • 2012-04-10
    • 2016-06-03
    • 2019-06-03
    • 2012-05-26
    • 1970-01-01
    • 1970-01-01
    • 2015-07-06
    相关资源
    最近更新 更多