php 大批量的删除图片,删除/批量删除文章/新闻内容并删除焦点图和图片文件的方法...

在网上找了很久希望使用php删除文章/新闻内容的同时并删除焦点图和图文文件的实现代码。这样可以节省服务器的空间。同时干净网站内容,拒接冗余。尤其是可以最大最快捷的杜绝不健康分图片。防止网站被不健康的图片污染。

其实最核心的代码就是正则表达式。每次学艺不精,都为正则而发愁。下面直接上代码。仅供参考。。欢迎指正。

// 删除&&批量删除(备注:传入id删除单条,传入ids批量删除)

public function actionDel(){

$request = Yii::app()->request;

if($request->isAjaxRequest){//来自ajax的请求

$delArr = array();//组装需要删除的id数组

if($request->getParam('id')) {//删除单条记录--id

$delArr[] = intval($request->getParam('id'));

}else{ //批量删除--ids

$delArr = $request->getParam('ids');

}

if(!empty($delArr)){//如果需要删除的数组不为空

$transaction = Yii::app()->db->beginTransaction();

try{

foreach ($delArr as $id) {

$info = GoodsList::model()->findByPk($id);

//删除形象图片

if(!empty($info->img)){

$infoImg = '.'.$info->img;

if(file_exists($infoImg)){ unlink($infoImg); }

}

//正则匹配备注里面的图片

$imgRemark = preg_match_all("/]+>/isU", $info->remark,$imgArr);

if($imgRemark){//匹配成功

if(is_array($imgArr[1])){

foreach ($imgArr[1] as $img) {//循环删除图片

$imgAdd = '.'.$img;

if (file_exists($imgAdd)) {

unlink($imgAdd);

}

}

}

}

$rt = GoodsList::model()->deleteByPk($id);

if(!$rt) throw new Exception("删除失败??",1);

}

$transaction->commit();

$this->_end(0, '删除成功!!');

}catch(Exception $e) {

$transaction->rollback();

$this->_end($e->getCode(), $e->getMessage());

}

}else{

$this->_end(2,'请选择需要批量删除的条目..');

}

}

}

dodobook使用的Yii框架。。ajax删除。。你可以选取其中的部分代码。。相信你自己。。。

再来一个优化后的公共的方法.这个更完善更通用.因为使用了 isset()提前判断是否有该字段。。

//自定义删除的公共方法

public function uBatchDel($modelDel){

$request = Yii::app()->request;

$delArr = array();//组装需要删除的id数组

if($request->getParam('id')) {//删除单条记录--id

$delArr[] = intval($request->getParam('id'));

}else{ //批量删除--ids

$delArr = $request->getParam('ids');

}

if(!empty($delArr)){//如果需要删除的数组不为空

$transaction = Yii::app()->db->beginTransaction();

try{

foreach ($delArr as $id) {

$info = $modelDel->findByPk($id);

if(isset($info->img)){//删除形象图片

if(!empty($info->img)){

$infoImg = '.'.$info->img;

if(file_exists($infoImg)){ unlink($infoImg); }

}

}

if(isset($info->img_logo)){//删除LOGO

if(!empty($info->img_logo)){

$infoImg = '.'.$info->img_logo;

if(file_exists($infoImg)){ unlink($infoImg); }

}

}

if(isset($info->remark)){//正则匹配备注里面的图片

$imgRemark = preg_match_all("/]+>/isU", $info->remark,$imgArr);

if($imgRemark){//匹配成功

if(is_array($imgArr[1])){

foreach ($imgArr[1] as $img) {//循环删除图片

$imgAdd = '.'.$img;

if (file_exists($imgAdd)) {

unlink($imgAdd);

}

}

}

}

}

$rt = $modelDel->deleteByPk($id);//删除记录

if(!$rt) throw new Exception("删除失败??",1);

}

$transaction->commit();

$this->_end(0, '删除成功!!');

}catch(Exception $e) {

$transaction->rollback();

$this->_end($e->getCode(), $e->getMessage());

}

}else{

$this->_end(2,'请选择需要批量删除的条目..');

}

}

不要虚无缥缈的好。。。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值