上門一對一計算機家教
當前位置: 首頁 > dedecms家教 >

DedeCMS下載微信文章內圖片(微信公眾號文章內圖片本地化)方法

點擊: 時間:2016-07-22 來源:北京家教網
在使用DEDECMS時,很多時候從一些網站復制的內容時,其中的圖片,保存時不能把遠程圖片下載到本地,像新浪博客,網易等一些大型網站圖片有做防盜鏈處理,圖片地址并沒有后輟名!因此在使用dedecms默認的下載遠程功能沒辦法實現! 在發現了此問題

在使用DEDECMS時,很多時候從一些網站復制的內容時,其中的圖片,保存時不能把遠程圖片下載到本地,像新浪博客,網易等一些大型網站圖片有做防盜鏈處理,圖片地址并沒有后輟名!因此在使用dedecms默認的下載遠程功能沒辦法實現!

在發現了此問題,分析了下,發現其實要解決很簡單,發現DEDECMS在檢索遠程圖片時的正則加了圖片格式匹配;

DEDECMS匹配的正則:preg_match_all("/(src)=[\"|'| ]{0,}(http:\/\/([^>]*)\.(gif|jpg|png))/isU",$body,$img_array);

而向新浪博客圖片:http://s2.sinaimg.cn/orignal/54a625bft848ec4ffa561&690&690 是沒有圖片后輟的,所在不能匹配下載了!

找到了問題,就知道怎么改了!

找到DEDECMS文件 /dede/inc/inc_archives_functions.php,找到函數

/獲得文章body里的外部資源

function GetCurContent($body,&$litpic,$autolitpic)

//獲得文章body里的外部資源

function GetCurContent($body)

大概在11行和89行把匹配遠程圖片的規則

preg_match_all("/(src)=[\"|'| ]{0,}(http:\/\/([^>]*)\.(gif|jpg|png))/isU",$body,$img_array);

改成

preg_match_all("/src=[\"|'|\s]{0,}(http:\/\/([^>]*))(\"|'|\s)/isU",$body,$img_array);

就OK了

當然DEDECMS這樣做是有它道理的,這樣只能匹配圖片,不會匹配到像JS,FLASH文件,但這樣也有很多不方便,因為我們在編輯內容時,就能識別這是一個什么文件了!

------分隔線----------------------------
30选5开奖查询