>백엔드 개발 >PHP 문제 >PHP에서 디렉토리를 재귀적으로 삭제하는 방법

PHP에서 디렉토리를 재귀적으로 삭제하는 방법

王林
王林원래의
2020-11-05 11:35:082481검색

PHP에서 디렉터리를 반복적으로 삭제하는 방법: 먼저 opendir 함수를 사용하여 디렉터리 핸들을 연 다음 디렉터리 핸들에서 항목을 읽고 마지막으로 readdir 함수를 사용하여 디렉터리에 있는 다음 파일의 이름을 반환합니다. 디렉토리를 순차적으로 삭제하고 디렉토리 핸들을 닫을 수 있습니다.

PHP에서 디렉토리를 재귀적으로 삭제하는 방법

관련 함수:

opendir() 함수는 디렉터리 핸들을 엽니다. 성공하면 함수는 디렉터리 스트림을 반환하고, 그렇지 않으면 false와 오류를 반환합니다.

(관련 학습 영상 추천 : java 영상 튜토리얼)

closedir() 함수는 디렉토리 핸들을 닫습니다.

readdir() 함수는 디렉터리에 있는 다음 파일의 파일 이름을 반환합니다.

코드 샘플:

<?php

    //递归删除目录
    $path = "D:/a";
    //调用递归函数
    $res = diGUiRmDir($path);
    //输出结果
    var_dump($res);

    function diGUiRmDir($path){

        //打开目录句柄
        $handle = opendir($path);

        //readdir() 从目录句柄中读取条目
        //返回目录中下一个文件的文件名。文件名以在文件系统中的排序返回
        while(false !== $filename = readdir($handle)){
            if ($filename ==&#39;.&#39; || $filename ==&#39;..&#39;) {  //跳过 . ..文件夹
                continue;
            }

            //判断是否为目录
            if (is_dir($path.&#39;/&#39;.$filename)) {
                $current_func = __FUNCTION__;
                //是目录,递归删除
                $current_func = ($path.&#39;/&#39;.$filename);
            }else{
                //是文件,删除
                unlink($path.&#39;/&#39;.$filename); //unlink() 删除文件 返回bool
            }
        }
        //目录删除完毕
        closedir($handle); //关闭目录句柄
        return rmdir($path); // 删除目录返回结果
    }

관련 권장 사항: php training

위 내용은 PHP에서 디렉토리를 재귀적으로 삭제하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.