php 删除多个文件

Array([0]=>Array([imgname]=>201303219388.jpg[thumb]=>thumb_201303219388.jpg[path]=>up... Array(
[0] => Array
(
[imgname] => 201303219388.jpg
[thumb] => thumb_201303219388.jpg
[path] => uploadtuku/20130321/
)

[1] => Array (
[imgname] => 201303213628.jpg
[thumb] => thumb_201303213628.jpg
[path] => uploadtuku/20130321/
)

[2] => Array (
[imgname] => 201303213324.jpg
[thumb] => thumb_201303213324.jpg
[path] => uploadtuku/20130321/
)

)
我有这样的一个数组,注意是文件夹里面的数据,现在我做了个批删除 怎么删除这个数组里面的图片及缩略图,path是路径,如果里面没有图片那么把path也删除掉?怎么做呢
function deletedetailed(){ $delete=M('Tukucontent'); $deletes=M('Tukuson'); $data['id']=array('in', substr($_POST['id'],0,-1));//删除目录图片$dele=$delete->where($data)->field('imgname,thumb,path')->select(); for($i=0;$i<count($dele);$i++){ $dir=$dele[$i]['path']; if(file_exists($dele[$i]['path'].$dele[$i]['imgname'])){ unlink($dele[$i]['path'].$dele[$i]['imgname']); unlink($dele[$i]['path'].$dele[$i]['thumb']); }if(!is_dir_kong($dir)){//没有数据返回空; rmdir($dir);}} if($delete->where($data)->delete()){ echo 1; }else{ echo 2; } }我用了自己的方法 给有需要的同学参考下吧~~~
展开
 我来答
yongirl320
推荐于2016-07-03 · TA获得超过830个赞
知道小有建树答主
回答量:280
采纳率:100%
帮助的人:482万
展开全部
1. 首先是 路径要明确

建议使用绝对路径 (window: D:/www/upload/aaa.jpg unix: /home/dir/xxx/sdfsdf.jpg)
绝对路径是可以通过 __FILE__ 常量获取, 具体的细节要自己处理

如果是相对路径的话,比较麻烦 ,因为路径是 根据执行删除代码的 文件所在位置而定。

2. 如果路径定好了 就可以执行文件删除,先删除文件 在删文件夹

$filearray = array(....文件名 数组...);
$path = '绝对路径';

//这里@ 可以屏蔽 实际文件不存在时出现的报错
foreach($filearray as $v){
@unlink($path.$v['path'].$v['imgname']);

@unlink($path.$v['path'].$v['thumb']);

}

//删除文件夹 这里其实跟上面数组就没关系了, 你应该是要删除uploadtuku里面的 所有空文件夹
//PHP5 有一个函数叫 scandir 扫描目录里面文件和文件夹
//如果是 LINUX服务器 删除目录 还需要相应的权限,一般可以上传文件的话 权限是已经给了

$files = scandir($path.'uploadtuku');
foreach($files as $v){
if($v!=='.' && $v!=='..' && is_dir($path.'uploadtuku/'.$v)){
@rmdir($path.'uploadtuku/'.$v);

}

}

删除文件夹的时候 如果里面有文件 那么rmdir就不会删除文件夹。
莘赡05V
推荐于2016-09-26 · 知道合伙人软件行家
莘赡05V
知道合伙人软件行家
采纳数:1397 获赞数:3710
毕业安徽理工大学

向TA提问 私信TA
展开全部
<?

function deldir($dir) {

  //先删除目录下的文件:

  $dh=opendir($dir);

  while ($file=readdir($dh)) {

    if($file!="." && $file!="..") {

      $fullpath=$dir."/".$file;

      if(!is_dir($fullpath)) {

          unlink($fullpath);

      } else {

          deldir($fullpath);

      }

    }

  }

 

  closedir($dh);

  //删除当前文件夹:

  if(rmdir($dir)) {

    return true;

  } else {

    return false;

  }

}



?>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
caiaolin
2013-03-22 · TA获得超过664个赞
知道小有建树答主
回答量:621
采纳率:0%
帮助的人:460万
展开全部
删除文件用unlink() 删除数组内的元素可以用unset($arr['xxx'])
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
天街夜雨
2013-03-22 · TA获得超过641个赞
知道小有建树答主
回答量:759
采纳率:0%
帮助的人:665万
展开全部
foreach($list as $v){
$image = $v['path'] . $v['imgname'];
$timg = $v['path'] . $v['thumb'];
is_file($image) && unlink($image);
is_file($timg) && unlink($timg);
is_dir($v['path']) && !empty(glob($v['path'] . '*')) && rmdir($v['path']);
}
没测试. lz可以跑下...
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式