2012-05-05 70 views
-2

我不理解正則表達式。我需要更改以此方式格式化的img標記:<img class="special-class" (then custom srcs and whatever) />。我認爲preg_replace會完成這項工作,還是會有更有效的工作?用preg_replace和正則表達式替換img標籤

我只需要正則表達式的方法來搜索與一流的完整的img標籤,所以我可以用保存爲$嗡嗡另一個字符串替換它

+1

改變方式?進入什麼?用什麼東西代替東西?不是很清楚,你是! – Rudie

+0

用PHP preg_replace($ replace_this,$ with_this,$ html_string)我需要$ replace_this –

+1

是的......這是一件很清楚的事情。閱讀我評論中的問題:如何,什麼,什麼東西。 – Rudie

回答

2

比賽一個完整的img標籤(與有效的HTML,並在那裏沒有加引號>):

preg_match('#<img([^>]+)>#i', $html, $match); 

不知道你想還有什麼...

$match將包含完整[0][1]中的屬性(字符串)。

如果你想匹配的類屬性:

preg_match('#class="([^"])"#i', $html, $match); 

編輯
咦這可能工作:

preg_replace('#<img[^>]+class="[^"]*replace[^"]*"[^>]*>#', '', $html); 

如果我輸入:

<img src="oele" class="boele" /> 
<img src="boele" /> 
<img src class="replace boele"> 

它取代最後一個img並離開其餘的未觸動。

正則表達式規則!

+0

替換圖片?刪除完整的img標籤?正則表達式幾乎不可能。 HTML不是正則表達式格式。 – Rudie

+0

哦..沒有辦法像'])>#i'? –

+0

你可以這樣做,但是'class'總是第一個屬性,並且它總是隻包含那個類?我用更好的(?)解決方案編輯了我的答案。 – Rudie

0

我會選擇一個JavaScript解決方案(認爲的jQuery) 。如果你想我可以幫助與

+0

我不能這樣做,它需要服務器端 –

+0

對不起,但你沒有在你的問題中提到這一點:) –

+0

哈哈是啊對不起,我是一個stackoverflow n00b顯然 –

相關問題