Rumah > php教程 > PHP开发 > rrmdir php中递归删除目录及目录下的文件

rrmdir php中递归删除目录及目录下的文件

高洛峰
Lepaskan: 2016-12-28 15:02:31
asal
1514 orang telah melayarinya

1

2

3

4

5

6

7

8

9

10

11

function rrmdir($dir) {

if (is_dir($dir)) {

$objects = scandir($dir);

foreach ($objects as $object) {

if ($object != “.” && $object != “..”) {

if (filetype($dir.”/”.$object) == “dir”) rrmdir($dir.”/”.$object); else unlink($dir.”/”.$object);

}

}

reset($objects);

}

}

Salin selepas log masuk

rmdir
(PHP 4, PHP 5)
rmdir — 删除目录
Report a bug 说明
bool rmdir ( string $dirname )
尝试删除 dirname 所指定的目录。 该目录必须是空的,而且要有相应的权限。成功时返回 TRUE, 或者在失败时返回 FALSE.
Note: 自 PHP 5.0.0 起 rmdir() 也可用于某些 URL 封装协议。参见Supported Protocols and Wrappers 的列表看看 rmdir() 支持哪些 URL 封装协议。
Note: 在 PHP 5.0.0 中增加了 对上下文(Context)的支持。有关 上下文(Context) 的说明参见 Stream 函数。
Note: 当启用 安全模式时, PHP 会在执行脚本时检查被脚本操作的目录是否与被执行的脚本有相同的 UID(所有者)。
参见 mkdir() 和 unlink()。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

<?php

function rrmdir($dir) {

if (is_dir($dir)) {

$objects = scandir($dir);

foreach ($objects as $object) {

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

if (filetype($dir."/".$object) == "dir") rrmdir($dir."/".$object); else unlink($dir."/".$object);

}

}

reset($objects);

rmdir($dir);

}

}

?>

Salin selepas log masuk

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

<?php

function deleteAll($directory, $empty = false) {

if(substr($directory,-1) == "/") {

$directory = substr($directory,0,-1);

}

if(!file_exists($directory) || !is_dir($directory)) {

return false;

} elseif(!is_readable($directory)) {

return false;

} else {

$directoryHandle = opendir($directory);

while ($contents = readdir($directoryHandle)) {

if($contents != &#39;.&#39; && $contents != &#39;..&#39;) {

$path = $directory . "/" . $contents;

if(is_dir($path)) {

deleteAll($path);

} else {

unlink($path);

}

}

}

closedir($directoryHandle);

if($empty == false) {

if(!rmdir($directory)) {

return false;

}

}

return true;

}

}

?>

[/code]

A patch to previous script to make sure rights for deletion is set:

Salin selepas log masuk

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

<?php

//Delete folder function

function deleteDirectory($dir) {

if (!file_exists($dir)) return true;

if (!is_dir($dir) || is_link($dir)) return unlink($dir);

foreach (scandir($dir) as $item) {

if ($item == &#39;.&#39; || $item == &#39;..&#39;) continue;

if (!deleteDirectory($dir . "/" . $item)) {

chmod($dir . "/" . $item, 0777);

if (!deleteDirectory($dir . "/" . $item)) return false;

};

}

return rmdir($dir);

}

?>

Salin selepas log masuk

更多rrmdir php中递归删除目录及目录下的文件相关文章请关注PHP中文网!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Cadangan popular
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan