> 백엔드 개발 > PHP 튜토리얼 > PHP를 사용하여 디렉토리 내용을 복사하는 방법은 무엇입니까?

PHP를 사용하여 디렉토리 내용을 복사하는 방법은 무엇입니까?

Mary-Kate Olsen
풀어 주다: 2024-10-31 13:49:01
원래의
1064명이 탐색했습니다.

How to Copy Directory Contents Using PHP?

PHP를 사용하여 디렉토리 내용 복사

구현 문제: 와일드카드가 인식되지 않음

명령 복사("old_location/*.*","new_location/ ")는 copy() 함수에서 와일드카드(*.*)를 직접 인식하지 못하기 때문에 실패했습니다.

재귀 복사 기능

하위 디렉터리와 파일을 포함한 전체 디렉터리의 내용을 복사하려면, 재귀 복사 기능이 필요합니다. 예는 다음과 같습니다.

<code class="php">function recurseCopy(string $sourceDirectory, string $destinationDirectory, string $childFolder = ''): void 
{
    $directory = opendir($sourceDirectory);

    if (is_dir($destinationDirectory) === false) {
        mkdir($destinationDirectory);
    }

    if ($childFolder !== '') {
        if (is_dir("$destinationDirectory/$childFolder") === false) {
            mkdir("$destinationDirectory/$childFolder");
        }

        while (($file = readdir($directory)) !== false) {
            if ($file === '.' || $file === '..') {
                continue;
            }

            if (is_dir("$sourceDirectory/$file") === true) {
                recurseCopy("$sourceDirectory/$file", "$destinationDirectory/$childFolder/$file");
            } else {
                copy("$sourceDirectory/$file", "$destinationDirectory/$childFolder/$file");
            }
        }

        closedir($directory);

        return;
    }

    while (($file = readdir($directory)) !== false) {
        if ($file === '.' || $file === '..') {
            continue;
        }

        if (is_dir("$sourceDirectory/$file") === true) {
            recurseCopy("$sourceDirectory/$file", "$destinationDirectory/$file");
        } 
        else {
            copy("$sourceDirectory/$file", "$destinationDirectory/$file");
        }
    }

    closedir($directory);
}</code>
로그인 후 복사

사용

이 기능을 사용하려면 소스 디렉터리, 대상 디렉터리 및 선택적 하위 폴더(필요한 경우)를 사용하여 호출하세요.

<code class="php">recurseCopy("old_location", "new_location");</code>
로그인 후 복사

위 내용은 PHP를 사용하여 디렉토리 내용을 복사하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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