2015-05-11 41 views
-1

我想要一個正則表達式代碼,只需要將所有「src」字符串替換爲「data-src」。PHP的正則表達式搜索並替換img'src'屬性到'data-src'

這裏有一個例子:

<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> 

768,16是:

<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」 代替所有的 「src」 屬性。

我試圖使用這個正則表達式模式,但它不工作。

對不起我的英語。

謝謝。

+0

你從哪裏開始試圖自己解決這個問題? – Anonymous

+1

如果你用'data-src'替換'src',你的圖像將不再可見。你應該*永遠不*用正則表達式解析HTML。改爲使用[PHP DOM解析器](http://simplehtmldom.sourceforge.net/)。 –

+0

我同意Jay Blanchard,你不應該用正則表達式解析HTML,而應該使用一個真正的解析器 - 但是 - 你錯過了顯示你正在嘗試哪個正則表達式? – pastacool

回答

1

使用DOM解析器。但是,如果你想用正則表達式來做到這一點,你可以使用以下方法來匹配:

(<img\s*?)src 

並將其替換:

$1data-src 

如果您正在使用src纔可以使用其他屬性,而不是執行以下操作:

(<img.*?)src 

DEMO

相關問題