>  기사  >  백엔드 개발  >  PHP_php에서 디렉토리를 반복적으로 복사하고 이동하기 위한 사용자 정의 기능 공유 팁

PHP_php에서 디렉토리를 반복적으로 복사하고 이동하기 위한 사용자 정의 기능 공유 팁

WBOY
WBOY원래의
2016-05-16 20:31:411130검색

디렉토리 복사는 파일 작업의 기본 기능이지만. 그러나 PHP에는 특정 함수가 제공되지 않으며 재귀 함수 구현도 사용자 정의해야 합니다. 여러 하위 디렉터리가 포함된 디렉터리를 복사하려면 파일 복사 및 디렉터리 생성과 같은 작업이 필요합니다. 파일 복사는 PHP에서 제공하는 copy() 함수를 이용하고, 디렉토리 생성은 mkdir() 함수를 이용하면 된다. 함수를 정의할 때 먼저 소스 디렉터리를 탐색합니다. 일반 파일을 발견하면 copy() 함수를 사용하여 직접 복사합니다. 순회 중에 디렉터리가 발견되면 디렉터리를 생성한 다음 디렉터리의 파일을 복사해야 합니다. 하위 디렉터리가 있으면 결국 전체 디렉터리를 복사하는 데 재귀적 반복 작업이 사용됩니다. 사용자 정의 재귀 함수 복사 디렉터리의 프로그램 코드는 다음과 같습니다.

코드 복사 코드는 다음과 같습니다.

//다중 레벨 하위 디렉터리가 있는 디렉터리를 반복적으로 복사하는 사용자 정의 함수
함수 copyDir($dirSrc,$dirTo){
If(is_file($dirTo)){ //대상이 디렉터리가 아니면 종료
echo "대상이 디렉터리가 아니어서 생성할 수 없습니다!!";
          //기능 종료
}
If(!file_exists($dirTo)){ //대상이 디렉터리가 아니면 종료
>                                                    }

If($dir_handle = @opendir($directory)){ //디렉토리를 열고 성공적으로 열 수 있는지 확인
                                                                                                                                                                                                                                                 ​ If($filename != "."&& $filename != ".."){ //두 개의 특수 디렉토리를 제외해야 합니다
                 $subFile = $directory."/".$filename;                 $sunToFile = $dirTo."/".$filename; If(is_dir($subSrcFile)) //디렉토리이면 조건은 true
Copydir ($ Subsrcfile, $ Subtofile); // 하위 디렉토리를 복사하여 자신을 재귀적으로 호출합니다
If(is_file($subSrcFile)) //파일이면 조건이 true
Copy ($ subsrcfile, $ subtofile); // 대상 위치에 직접 복사
            }
       }
​​​​losedir($dir_handle);​​​​//파일 리소스 닫기
}
}

//기능 테스트, "phpMyAdmin" 디렉터리를 "D:/admin"으로 복사
copyDir("phpMyAdmin","D:/admin");
?>



보안 및 크로스 플랫폼 고려 사항을 위해 운영 체제의 SHELL 명령 "cp-a"를 호출하여 디렉터리 복사를 완료하지 마십시오.
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.