php删除文件夹下图片,PHP 删除文件夹和文件夹下的所有文件

在 PHP 网站中可能会遇到需要用 PHP 删除文件夹的情况,例如一些网盘或在线文件管理等。最近我开发的一个在线文件管理器就需要用 PHP 删除文件夹。在开发删除功能的时候遇到了一个问题,PHP 删除文件夹的函数 rmdir 只能删除空文件夹,在遇到非空文件夹的情况下就会报错。要解决这个问题只能写一个自定义函数或方法,这里我就记录一下我写的函数,可以直接调用。

函数代码<?php

// 删除文件或文件夹,接收一个数组,支持批量删除

function delete($fileName = array()) {

$success = array(); // 记录已删除的文件

// 如果数组为空

if (count($fileName) < 1) {

return array(

'result' => false,

'info' => '文件名不能为空!'

);

}

for ($i = 0;$i < count($fileName);$i ++) {

// 文件是否存在,如果不存在就跳过

if (file_exists($fileName[$i])) {

// 是否是文件夹

if (!is_dir($fileName[$i])) {

// 如果不是文件夹就直接删除

if (unlink($fileName[$i])) {

// 如果删除成功就把文件名添加到已删除文件的数组

array_push($success, $fileName[$i]);

}

}else {

// 如果是文件夹就匹配文件夹内的所有文件

$fileList = glob($fileName[$i] . '/*');

// 是否匹配到文件

if (count($fileList) < 1) {

// 如果没有匹配到文件说明这是一个空文件夹,直接删除

if (rmdir($fileName[$i])) {

// 如果删除成功就把文件夹名添加到已删除文件的数组

array_push($success, $fileName[$i]);

}

}else {

// 如果匹配到文件就调用自身继续删除

$result = delete($fileList);

foreach($result as $val) {

// 把返回结果添加到已删除文件的数组

array_push($success, $val);

}

}

}

// 判断需要删除的文件或文件夹是否还存在

if (file_exists($fileName[$i])) {

// 如果还存在就调用自身继续删除

$result = delete(array($fileName[$i]));

foreach($result as $val) {

// 把返回的结果添加到已删除文件的数组

array_push($success, $val);

}

}

}

}

// 执行完毕后返回已删除的文件或文件夹的名称

return $success;

}

使用

下面是一个包含文件和文件夹的目录:D:.

│ delete.php

│ favicon.ico

├─app

│ getimg.json

│ imgInfo.json

│ server.php

├─css

│ │ app.287096e6.css

│ │ app.2d4a1a45.css

│ │ app.6582a0f0.css

│ │ app.eef9e5aa.css

│ │ chunk-vendors.4f7bf8cd.css

│ │

│ └─src

│ │ App.vue

│ │ main.js

│ │

│ ├─assets

│ │ logo.png

│ │

│ └─components

│ content.vue

└─js

app.27d4ea4a.js

app.27d4ea4a.js.map

app.77d9468e.js

app.77d9468e.js.map

app.7d454f08.js

app.7d454f08.js.map

app.931622e1.js

app.931622e1.js.map

chunk-vendors.ed4bd0e4.js

chunk-vendors.ed4bd0e4.js.map

下面把除了 delete.php 外的文件和文件夹全部删除:

PHP代码:// 要删除的文件

$files = array(

'favicon.ico',

'app',

'css',

'js'

);

// 删除

$result = delete($files);

这里因为是简单演示,所以就手打文件名了,下面是返回结果:Array

(

[0] => favicon.ico

[1] => app/getimg.json

[2] => app/imgInfo.json

[3] => app/server.php

[4] => app

[5] => css/app.287096e6.css

[6] => css/app.2d4a1a45.css

[7] => css/app.6582a0f0.css

[8] => css/app.eef9e5aa.css

[9] => css/chunk-vendors.4f7bf8cd.css

[10] => css/src/App.vue

[11] => css/src/assets/logo.png

[12] => css/src/assets

[13] => css/src/components/content.vue

[14] => css/src/components

[15] => css/src/main.js

[16] => css/src

[17] => css

[18] => js/app.27d4ea4a.js

[19] => js/app.27d4ea4a.js.map

[20] => js/app.77d9468e.js

[21] => js/app.77d9468e.js.map

[22] => js/app.7d454f08.js

[23] => js/app.7d454f08.js.map

[24] => js/app.931622e1.js

[25] => js/app.931622e1.js.map

[26] => js/chunk-vendors.ed4bd0e4.js

[27] => js/chunk-vendors.ed4bd0e4.js.map

[28] => js

)

上面输出的结果就是已删除的文件和文件夹。

以上就是 PHP 删除文件和文件夹的方法,因为代码比较简单而且很多都有注释,就不逐句说明了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值