PHP에서 디렉토리와 전체 내용(파일 + 하위 디렉토리)을 반복적으로 삭제하는 방법

WBOY
풀어 주다: 2024-08-28 11:08:03
원래의
873명이 탐색했습니다.

How to Recursively Delete a Directory and its Entire Contents (files + sub dirs) in PHP

PHP: PHP(Hypertext Preprocessor)는 웹 개발을 위해 특별히 설계된 널리 사용되는 오픈 소스 서버 측 스크립팅 언어입니다. 원래 1994년 Rasmus Lerdorf에 의해 만들어졌으며 이후 전 세계 수백만 명의 개발자가 사용하는 강력한 언어로 발전했습니다.

PHP는 주로 동적 웹 페이지 및 웹 애플리케이션을 개발하는 데 사용됩니다. 이를 통해 개발자는 HTML 내에 PHP 코드를 삽입할 수 있으므로 서버측 논리와 프레젠테이션 계층을 쉽게 혼합할 수 있습니다. PHP 스크립트는 서버에서 실행되고 결과 HTML이 클라이언트 브라우저로 전송됩니다.

PHP에서 디렉토리와 전체 내용(파일 및 하위 디렉토리)을 반복적으로 삭제하는 방법에는 여러 가지가 있습니다. 다음은 세 가지 일반적인 방법입니다.

  • rmdir() 및 unlink() 함수를 재귀적으로 사용하기

  • glob() 함수 사용

  • RecursiveDirectoryIterator 및 RecursiveIteratorIterator 클래스 사용

rmdir() 및 unlink() 함수를 재귀적으로 사용하기

rmdir() 및 unlink() 함수를 사용하여 PHP에서 디렉터리와 해당 콘텐츠(파일 및 하위 디렉터리)를 반복적으로 삭제하려면,

으아아아

코드 설명은 다음과 같습니다

디렉토리 경로를 매개변수로 사용하는 deleteDirectory() 함수가 정의되었습니다.

is_dir($dirPath)을 사용하여 주어진 경로가 디렉터리인지 확인합니다. 디렉터리가 아니면 함수가 반환됩니다.

디렉토리인 경우 scandir($dirPath)을 사용하여 지정된 디렉터리 내의 파일 및 디렉터리 목록을 검색합니다.

특수 항목 "."을 제외하고 각 파일과 디렉터리를 반복합니다. 그리고 "..".

각 항목에 대해 디렉터리 경로와 파일 이름을 연결하여 전체 파일 경로를 구성합니다.

항목이 하위 디렉터리인 경우 해당 하위 디렉터리에서 deleteDirectory() 함수가 재귀적으로 호출됩니다.

항목이 파일인 경우 unlink($filePath)를 사용하여 파일을 삭제합니다.

모든 파일과 하위 디렉터리를 처리한 후 rmdir($dirPath)이 호출되어 빈 디렉터리 자체를 제거합니다.

이 기능을 사용하려면 삭제하려는 디렉터리 경로를 사용하여 호출하면 됩니다.

으아아아

지정된 경로 내의 파일과 디렉터리를 삭제할 수 있는 적절한 권한이 있는지 확인하세요.

glob() 함수 사용

glob() 함수를 사용하여 PHP에서 디렉터리와 해당 콘텐츠(파일 및 하위 디렉터리)를 반복적으로 삭제하려면,

으아아아

코드 설명은 다음과 같습니다

디렉토리 경로를 매개변수로 사용하는 deleteDirectory() 함수가 정의되었습니다.

$dirPath 패턴과 함께 glob() 함수를 사용합니다. '/*'는 지정된 디렉터리 내의 파일 및 디렉터리 목록을 검색합니다.

glob()에서 얻은 각 항목을 반복합니다.

각 항목에 대해 is_dir($file)을 사용하여 디렉터리인지 확인합니다.

디렉토리인 경우 해당 하위 디렉터리에서 deleteDirectory() 함수가 재귀적으로 호출되어 해당 내용을 삭제합니다.

파일인 경우 unlink($file)를 사용하여 파일을 삭제합니다.

모든 파일과 하위 디렉터리를 처리한 후 rmdir($dirPath)이 호출되어 빈 디렉터리 자체를 제거합니다.

이 기능을 사용하려면 삭제하려는 디렉터리 경로를 사용하여 호출하면 됩니다.

으아아아

지정된 경로 내의 파일과 디렉터리를 삭제할 수 있는 적절한 권한이 있는지 확인하세요.

RecursiveDirectoryIterator 및 RecursiveIteratorIterator 클래스 사용

RecursiveDirectoryIterator 및 RecursiveIteratorIterator 클래스를 사용하여 PHP에서 디렉터리와 해당 콘텐츠(파일 및 하위 디렉터리)를 반복적으로 삭제하려면,

으아아아

코드 설명은 다음과 같습니다

디렉토리 경로를 매개변수로 사용하는 deleteDirectory() 함수가 정의되었습니다.

지정된 디렉터리 경로를 사용하여 RecursiveDirectoryIterator 개체를 생성합니다. RecursiveDirectoryIterator::SKIP_DOTS 플래그는 특수 항목 "."을 제외하는 데 사용됩니다. 그리고 반복의 ".."입니다.

재귀적인 방식으로 파일과 디렉터리를 반복하기 위해 RecursiveIteratorIterator 객체를 생성합니다. RecursiveIteratorIterator::CHILD_FIRST 플래그는 하위 요소가 상위 요소보다 먼저 처리되도록 하는 데 사용됩니다.

이는 $반복기의 foreach 루프를 사용하여 각 파일과 디렉터리를 반복합니다.

각 항목에 대해 $file->isDir()을 사용하여 디렉터리인지 확인합니다.

디렉토리인 경우 rmdir($file->getPathname())을 사용하여 해당 디렉토리를 제거합니다.

If it's a file, unlink($file->getPathname()) is used to delete the file.

After processing all files and subdirectories, rmdir($dirPath) is called to remove the empty directory itself.

To use this function, simply call it with the path of the directory you want to delete:

<?php
   $directoryPath = '/path/to/directory';
   deleteDirectory($directoryPath);
?>
로그인 후 복사

Make sure you have proper permissions to delete the files and directories within the specified path.

Conclusion

These methods provide different approaches to achieve the same result. You can choose the method that suits your specific requirements and coding preferences. Remember to handle permissions properly to ensure that you have the necessary privileges to delete files and directories.

위 내용은 PHP에서 디렉토리와 전체 내용(파일 + 하위 디렉토리)을 반복적으로 삭제하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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