EC删除商品后自动删除商品描述图
更新时间:2017-03-28 点击量:1617
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="图片")而图片地址中又含有空格的话,很有可能造成图片地址无法正常提取的问题。
如果文章对您有帮助,就打赏一个吧