EC刪除商品后自動刪除商品描述圖
更新時間:2017-03-28 點擊量:761
Tag關鍵詞: 自動 ecshop模板 ecshop4.0模板 二次開發 ecshop3.6模板 ecshop小程序
ecshop刪除商品后自動刪除商品描述圖
用戶遇到一個問題。即在刪除圖片時,ecshop并不會自動刪除已經下載的圖片,加上這些圖片非常大,占用空間量特別大。那么就開發了這個功能,刪除商品時,同步刪除商品的縮略圖,相冊的圖片和商品詳情中的圖片。
打開 admin/includes/lib_goods.php找到
while ($goods = $GLOBALS['db']->fetchRow($res)) {//后增加
/** * 刪除代碼中的圖片 by uuecs.com * @param mix $good_desc 刪除商品介紹中的圖片 * @return void */ function delete_goods_img($good_desc) { $match = "<img[^>]*?src=[\"'\s]*?([^>\"']*?)[\"'>]*?[^>]*?>"; preg_match_all("@$match@isU", $good_desc, $img); $imgurls = array_unique($img[1]); $siteurl = dirname($GLOBALS['admin_path']); foreach ($imgurls as $img) { $img = trim($img); if( preg_match("@^http://@is", $img) ) { if( preg_match("@^$siteurl@is", $img) ) { $img = preg_replace("@^$siteurl@is", '', $img); }else{ continue; } } if(is_file(ROOT_PATH .'/'. $img)) { unlink(ROOT_PATH .'/'. $img); }elseif(is_file('../'. $img)) { unlink('../'. $img); } } }
其實主要就是正則處理替換,然后找到相應圖片后刪除。商品詳情中的圖片提取使用了標準的HTML語法,如果你的圖片代碼沒有使用標準的HTML語法(src="圖片")而圖片地址中又含有空格的話,很有可能造成圖片地址無法正常提取的問題。
如果文章對您有幫助,就打賞一個吧