php
  • regex
  • preg-match
  • 2011-07-30 135 views -4 likes 
    -4
    preg_match("/<img onClick='this\.style\.maxWidth=\"490px\"; this\.style\.maxHeight=\"490px\"; 
    this\.style\.cursor=\"default\";' style='cursor: pointer; display: block; float: left; max-width: 
    490px; max-height: 160px;' src='(.)+'><br style='clear: left;'>/",$CONTENT,$MATCHES); 
    print_r($MATCHES); 
    

    爲什麼不拿到這個圖像源?的preg_match問題

    +3

    哇。第一個單獨的CSS和JS從HTML,然後我們會談論正則表達式... – Dor

    +0

    謝謝你沒有回答我的問題...順便說一句,我發現它沒有工作,因爲我把(。)+不是(。+) ..... –

    +0

    感謝您編寫這樣一個不清楚的問題......人們需要閱讀這個你知道的。順便說一句,我不是downvoter。 – Dor

    回答

    4

    考慮寫src='(.+)'代替src='(.)+'

    +0

    我計算過了我張貼這洛爾 –

    +1

    無論如何,後右正確答案! ;-) –

    +0

    所以真正的男人大聲笑 –

    2

    你可以跳過了很多的東西,只是說

    preg_match("/<img.*?src='([^']*)'/i", $content, $matches); 
    

    $matches[1]將是src網址

    (之前的評論失控:這是基於問題中的原始模式,它不匹配雙引號的屬性,因爲原始模式也沒有,也不是一個通用的解決方案,它會尋找1好的解釋d img標籤,這就是它)


    比其他:

    • 內聯CSS?
    • 內聯事件處理程序?
    • 單引號周圍屬性? 哎呀!錯誤的那一個!道歉

    無的就是好的!

    +0

    這可能適用於這種情況,但它通常不是有用/正確的正則表達式模式。 – Dor

    +0

    @Dor:請詳細說明。我的意思是,是的,HTML開頭很糟糕,但是模式有什麼問題? – Flambino

    +1

    如果主題字符串包含2個或更多'img'標記,則舊的正則表達式(在編輯之前)可能與最新的'img'標記的src'屬性匹配。現在,在編輯正則表達式之後,當javascript中寫入'this.src ='val''之類的內容時(可能在OnClick事件值中),模式可以匹配'src'屬性的值 – Dor

    相關問題