PHP의 copy() 함수는 파일을 복사할 때 사용하는 내장 함수입니다. 이 함수를 호출하면 원본 파일(source file)의 복사본이 지정한 대상 경로(destination)에 생성되며, 만약 대상 위치에 같은 이름의 파일이 이미 존재한다면 기존 파일은 덮어써지게(overwrite) 됩니다.
문법(Syntax)
copy(source_file, dest_file)
매개변수(Parameters)
source_file − 복사할 원본 파일의 경로를 지정합니다.
dest_file − 복사본이 생성될 대상 파일의 경로를 지정합니다.
반환값(Return)
copy() 함수는 실행 결과에 따라 다음 값을 반환합니다.
- TRUE − 파일 복사가 성공한 경우
- FALSE − 파일 복사가 실패한 경우
참고: 복사가 실패하는 대표적인 원인으로는 원본 파일이 존재하지 않거나, 디렉터리에 쓰기 권한이 없는 경우 등이 있습니다. 필요하다면 PHP 공식 문서에서 자세한 내용을 확인할 수 있습니다.
예제 1
가장 기본적인 사용 방법입니다. 두 번째 인자로 전달된 경로에 첫 번째 인자의 파일이 복사됩니다.
<?php
echo copy("D:/myfiles/sourcefile.dat","D:/myfiles/destfile.dat");
?>출력
true
예제 2
실제 프로젝트에서 자주 쓰이는 형태로, 반환값을 조건문과 함께 활용해 백업 파일 생성 성공 여부를 확인하는 예제입니다.
<?php
$file = '/usr/home/guest/example.txt';
$newfile = '/usr/home/guest/example.txt.bak';
if (!copy($file, $newfile)) {
echo "failed to copy $file...\n";
} else {
echo "copied $file into $newfile\n";
}
?>출력
failed to copy /usr/home/guest/example.txt...
위 예제에서는 원본 파일이 존재하지 않아 복사에 실패했으며, 조건문을 통해 실패 메시지가 출력되었습니다. 이처럼 copy() 함수의 반환값을 활용하면 복사 작업의 성공 여부에 따라 적절한 후속 처리를 구현할 수 있습니다.