在网上找了很久希望使用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,'请选择需要批量删除的条目..');
}
}
不要虚无缥缈的好。。。