所以這裏是我的情況,以及我提出解決問題的解決方案。我創建了一個包含TinyMCE的應用程序,允許用戶創建用於發佈的HTML內容。用戶可以在其標記中包含圖像,並拖動/調整影響IMG標記中最終寬度/高度屬性的圖像的大小。這非常棒,用戶可以包含圖像並調整大小/將其重新定位到所需的外觀。但是一個大問題是,我現在正在向客戶端發送(可能)更大的圖像,只是讓瀏覽器將圖像調整爲所需的寬度/高度屬性。所有的帶寬和失去的加載時間....正則表達式生成縮略圖!?!?! (但是那太瘋狂了!)
所以我的解決方案是預處理我的用戶標記內容,掃描所有的IMG標籤和解析出高度/寬度/源屬性。然後將每個img的SRC標籤設置爲一個phpThumb請求,並將解析後的高度/寬度傳遞到縮略圖URL中。這將創建我縮小尺寸的圖像(以CPU和緩存爲代價優化帶寬)。你對這個解決方案有什麼看法?我見過其他人在使用mod_rewrite做類似的事情,但我想影響頁面服務的內容,而不是在收到圖像請求時處理它們。 ....對這個設計有什麼想法?
我需要一些幫助,因爲我的正則表達式技能需要一些工作,但我時間很短,並承諾很快支付我的技術知識債務。爲了使正則表達式更容易,我可以確定一些事情。只有需要此處理的img標記將具有現有的寬度=「」height =「」屬性(使用雙引號和較低的基本文本,但我認爲如果TinyMCE更改,匹配文本不區分大小寫會更好)
所以一個正則表達式只匹配必要的Img標籤,另外三個正則表達式可以提取src,寬度和高度?
謝謝大家。
你有沒有考慮過使用HTML解析器?或者這不是一個選擇? – pinkgothic 2010-04-28 17:04:01
我同意,選擇正則表達式會增加項目的重大不確定性。它可能比程序性解決方案實現起來要快一些,或者它可能慢得多(假設你注入了QA或用戶捕獲的問題)。至少一個程序化的解決方案是有界的。 – 2010-04-28 17:07:17