擷取文本中第一張符合尺寸的圖片地址

來源:互聯網
上載者:User
可以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後,在圖片表中修改這些圖片的其他欄位,與當前文章綁定。管理起來非常方便。

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.