可以preg_match_all 擷取所有圖片地址, 迴圈判斷直到找到合要求的圖片解決!
但是我想在找到第一張圖片時就立即判斷,不符合就找第二張再判斷,怎麼解決比較有效率呢? 或者說全部匹配再迴圈根本就沒問題?
回複討論(解決方案)
參見
preg_match
參見
preg_match
preg_match只能擷取第一張圖片地址, 但是若該張圖片不符合尺寸時, 如何擷取第二張圖片?
preg_match 不是可以用正則匹配嗎? 可以寫正則來匹配你想要的圖片啊。
preg_match 不是可以用正則匹配嗎? 可以寫正則來匹配你想要的圖片啊。
對呀,我匹配到第一張圖片,但這張圖片不符合我的要求! 想接著匹配第2張
聽上去很像提取文章縮圖,過濾小表徵圖
preg_match_all函數貌似是直接返回所有匹配結果,如果文章太長或者圖片過多確實影響效能
迴圈preg_match,每次都切掉已匹配的前部分文章呢?如何快速獲得斷點的位置?
用preg_replace_callback能做到嗎?回呼函數有辦法結束主調函數嗎?
換一種思路,你的文本是採集來的還是使用者發布的?後者可以把圖片存成附件形式入庫方便管理,用了ueditor這類可以修改源碼實現
preg_match_all 一次性取出
迴圈結果,必要時跳出(中斷檢查)
迴圈中 preg_match 或 strstr 逐次檢查,直到符合條件
兩者效率一樣,且 preg_match 存在剩餘串判斷的問題
對於 php 5.2 可用純字串函數,逐字元識別。效率明顯高於使用正則
對於 php 5.3 及以上,兩者效率相當。不必諱疾忌醫
建議對原串做 strip_tags 只保留 img 標記,處理起來要快好幾倍
另外,若程式無後續動作(即允許在符合條件時 die)
那麼 preg_replace_callback 最符合你的需求
另外,若程式無後續動作(即允許在符合條件時 die)
那麼 preg_replace_callback 最符合你的需求
多謝!
聽上去很像提取文章縮圖,過濾小表徵圖
preg_match_all函數貌似是直接返回所有匹配結果,如果文章太長或者圖片過多確實影響效能
迴圈preg_match,每次都切掉已匹配的前部分文章呢?如何快速獲得斷點的位置?
用preg_replace_callback能做到嗎?回呼函數有辦法結束主調函數嗎?
換一種思路,你的文本是採集來的還是使用者發布的?後者可以把圖片存成附件形式入庫方便管理,用了ueditor這類可以修改源碼實現
多謝了, 這裡面你提到將圖片以附件形式儲存,是將文章中的所有圖片都儲存到一個獨立的表裡嗎?
我是這樣的,在文章表中另建一個欄位,將文章中的所有圖片連結以逗號分割儲存在這個欄位裡! 通過這個欄位來操作儲存在磁碟上的圖片,不知道這樣怎麼樣?
版主提出的strip_tags提取img標籤 一針見血啊
樓主說的單欄位管理多個資料用逗號分隔,僅限用於極個別情況:不搜尋,不排序,數量少等等,你可以學一下資料庫範式這個東東,說白了就是多資料一定要單獨建表方便管理
前陣子自己寫的菜鳥CMS,圖片單獨建表,上傳改為ajax,返回id和src。提交一些文章欄位和這幾個圖片id後,在圖片表中修改這些圖片的其他欄位,與當前文章綁定。管理起來非常方便。