ECSHOP删除商品时同步删除商品详细评述中的图片

by 尘缘 on 四月 5th, 2010 // Filed Under → Ecshop

Ecshop 采集软件发布以后,部份用户使用火车采集器将商品详情中的图片下载到本地中。这样可以加快图片显示速度,同时保证图片的有效性。

但部份用户遇到一个问题。即在删除图片时,ECSHOP并不会自动删除已经下载的图片,加上这些图片非常大,占用空间量特别大。

那么就开发了这个功能,删除商品时,同步删除商品的缩略图,相册的图片和商品详情中的图片。

以下代码基于ECSHOP 2.7.0 GBK,请适用的用户下载。有问题欢迎提出。

点击下载

下面讲一下注意事项:


/**
 * 删除代码中的图片
 * @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="图片")而图片地址中又含有空格的话,很有可能造成图片地址无法正常提取的问题。

所以,按标准办事,效率总会高一点。

你可以任意转摘“ECSHOP删除商品时同步删除商品详细评述中的图片”,但请保留本文出处和版权信息。
作者:尘缘,QQ:130775,来源:http://www.4wei.cn/archives/1000539

有 2 条评论啦

Posted on 2010年11月5号 at 20:39:28

绍兴数码商城 :

这个需要在哪个表里修改啊??

Posted on 2011年08月21号 at 21:09:38

淘宝网男装 :

这个2.72的怎么用?我就是看到,我采集了很多商品,但是删除的时候很麻烦!郁闷!



走过路过,千万不要飞过,那是鸟人: