POST TIME:2020-03-28 23:54
大家在使用織夢模板時,可以發(fā)現(xiàn)我們從一些網(wǎng)站上復(fù)制一些有圖片的內(nèi)容時,在保存后發(fā)現(xiàn)遠程圖片沒有下載到本地。例如:新浪博客、網(wǎng)易等一些大型網(wǎng)站圖片有做防盜鏈處理,這些網(wǎng)站的圖片地址沒有后輟名。因此在使用織夢模板默認的下載遠程功能沒辦法實現(xiàn)! 在此我認真地進行了分析,發(fā)現(xiàn)要解決也比較簡單,只要修改織夢模板在檢索遠程圖片時的正則加了圖片格式匹配就可以了。
織夢模板匹配的正則:preg_match_all("/(src)=[&;|'| ]{0,}(http://([^>]*).(gif|jpg|png))/isU",$body,$img_array);
而向新浪博客圖片:http://static2.photo.sina.com.cn/orignal/54a625bft848ec4ffa561&690&690 是沒有圖片后輟的,所在不能匹配下載了!
找到了問題,就知道怎么改了!
找到織夢模板文件 /dede/inc/inc_archives_functions.php,找到函數(shù)
/獲得文章body里的外部資源
function GetCurContent($body,&$litpic,$autolitpic)
//獲得文章body里的外部資源
function GetCurContent($body)
大概在11行和89行把匹配遠程圖片的規(guī)則
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了
當(dāng)然織夢模板這樣做是有它道理的,這樣只能匹配圖片,不會匹配到像JS,FLASH文件,但這樣也有很多不方便,因為我們在編輯內(nèi)容時,就能識別這是一個什么文件了!