[PHP] 디렉토리 복사 함수
php에서는 copy()라는 함수를 제공해준다. 그런데 이건 파일만 복사하는 것으로 디렉토리와 그안의 파일을 모두 복사하려면 별도의 함수를 만들어야 한다. 이건 내가 잘 몰라서 그런 것일 수도 있다. ^^; 디렉토리의 복사 라는 것이 간단하게 생각하면 새로운 디렉토리 만들고 그 안으로 파일을 복사하는 과정이다. 이런 과정을 좀 편하게 해보고자 함수를 하나 만들었으니.. 그 함수 코드는 바로 아래에 있다.
<?php
function copy_directory($src_dir, $dest_dir)
{
if($src_dir == $dest_dir)
return false;
if(!is_dir($src_dir))
return false;
if(!is_dir($dest_dir)) {
@mkdir($dest_dir, 0707);
@chmod($dest_dir, 0707);
}
$dir = opendir($src_dir);
while (false !== ($filename = readdir($dir))) {
if($filename == "." || $filename == "..")
continue;
$files[] = $filename;
}
for($i=0; $i<count($files); $i++) {
$src_file = $src_dir.'/'.$files[$i];
$dest_file = $dest_dir.'/'.$files[$i];
if(is_file($src_file)) {
copy($src_file, $dest_file);
@chmod($dest_file, 0606);
}
}
}
?>
지금 생각해보니 디렉토리 안에 파일이 하나도 없으면 복사를 할 이유가 없다는.. 코드 좀 수정하면 되겠는데 이거 왜 이렇게 귀찮은지.. ㅋ 이 정도면 간단하게 상품이미지 복사할 때 잘 사용할 수 있을 것 같다. ㅎㅎ