> 백엔드 개발 > PHP 튜토리얼 > PHP 사용자 정의 함수 rrmdir은 디렉토리 아래의 디렉토리와 파일을 반복적으로 삭제합니다.

PHP 사용자 정의 함수 rrmdir은 디렉토리 아래의 디렉토리와 파일을 반복적으로 삭제합니다.

WBOY
풀어 주다: 2016-07-25 09:13:20
원래의
1260명이 탐색했습니다.

例子,php自定义函数rrmdir。

  1. //递归删除目录与文件
  2. function rrmdir($dir) {
  3. if (is_dir($dir)) {
  4. $objects = scandir($dir);
  5. foreach ($objects as $object) {
  6. if ($object != “.” && $object != “..”) {
  7. if (filetype($dir.”/”.$object) == “dir”) rrmdir($dir.”/”.$object); else unlink($dir.”/”.$object);
  8. }
  9. }
  10. reset($objects);
  11. }
  12. }
复制代码

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. function rrmdir($dir) {
  2. if (is_dir($dir)) {
  3. $objects = scandir($dir);
  4. foreach ($objects as $object) {
  5. if ($object != "." && $object != "..") {
  6. if (filetype($dir."/".$object) == "dir") rrmdir($dir."/".$object); else unlink($dir."/".$object);
  7. }
  8. }
  9. reset($objects);
  10. rmdir($dir);
  11. }
  12. }
  13. ?>
复制代码

This isn't my code, but just thought I would share, since it took me so long to find. This is a function to delete a folder, all sub-folders, and files in one clean move. Just tell it what directory you want deleted, in relation to the page that this function is executed. Then set $empty = true if you want the folder just emptied, but not deleted. If you set $empty = false, or just simply leave it out, the given directory will be deleted, as well.

例子:

  1. function deleteAll($directory, $empty = false) {
  2. if(substr($directory,-1) == "/") {
  3. $directory = substr($directory,0,-1);
  4. }
  5. if(!file_exists($directory) || !is_dir($directory)) {
  6. return false;
  7. } elseif(!is_readable($directory)) {
  8. return false;
  9. } else {
  10. $directoryHandle = opendir($directory);
  11. while ($contents = readdir($directoryHandle)) {
  12. if($contents != '.' && $contents != '..') {
  13. $path = $directory . "/" . $contents;
  14. if(is_dir($path)) {
  15. deleteAll($path);
  16. } else {
  17. unlink($path);
  18. } // bbs.it-home.org
  19. }
  20. }
  21. closedir($directoryHandle);
  22. if($empty == false) {
  23. if(!rmdir($directory)) {
  24. return false;
  25. }
  26. }
  27. return true;
  28. }
  29. }
  30. ?>
复制代码

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

  1. //Delete folder function
  2. //递归删除目录与文件
  3. function deleteDirectory($dir) {
  4. if (!file_exists($dir)) return true;
  5. if (!is_dir($dir) || is_link($dir)) return unlink($dir);
  6. foreach (scandir($dir) as $item) {
  7. if ($item == '.' || $item == '..') continue;
  8. if (!deleteDirectory($dir . "/" . $item)) {
  9. chmod($dir . "/" . $item, 0777);
  10. if (!deleteDirectory($dir . "/" . $item)) return false;
  11. };
  12. }
  13. return rmdir($dir);
  14. }
  15. ?>
复制代码


원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿