LAMP
PHP 파일 move 함수
영은파더♥
2016. 3. 4. 13:58
728x90
PHP 함수중에 move라는 함수는 없다. move 대신에 rename이라는 함수가 있다.
그리고 rename 말고도 파일을 이동하는 방법은 여러가지가 있다.
1. copy 후 unlink
2. rename 함수 사용
3. exec 함수로 mv 명령어 호출
등등 여러 방법이 있을 것이다.
▶ copy 후 unlink
$FILENAME1 = "./dir1/file.txt";
$FILENAME2 = "./dir2/file.txt";
if(file_exists($FILENAME1)) {
if(copy($FILENAME1, $FILENAME2)) {
unlink($FILENAME1);
}
}
▶ rename 함수 사용
$FILENAME1 = "./dir1/file.txt";
$FILENAME2 = "./dir2/file.txt";
if(file_exists($FILENAME1)) {
rename($FILENAME1, $FILENAME2);
}
▶ exec 함수로 mv 명령어 호출
$FILENAME1 = "./dir1/file.txt";
$FILENAME2 = "./dir2/file.txt";
if(file_exists($FILENAME1)) {
exec("mv ".$FILENAME1." ".$FILENAME2);
}
첫번째 방법은 파일을 복사후 원본을 삭제시키는 방법인데 가장 확실하지만 복사 후 지우기 때문에 속도가 느리다.
여러개의 파일을 옮기려고 한다면 rename 함수나 exec로 mv 명령어를 사용하는게 좋지 않을까 싶다.
그리고 작업시간이 오래걸릴 수도 있으니 아래 코드를 맨 위에 넣어주도록 하자.
set_time_limit(0);
디렉토리가 없으면 만들어 주자.
$DEST_DIR = "./dir2/";
if(!is_dir($DEST_DIR)) {
if(@mkdir($DEST_DIR, 0777, true)) {
if(is_dir($DEST_DIR)) {
@chmod($DEST_DIR, 0777);
}
}
}
없는 디렉토리에 옮길려고 하면 안되니 이부분을 우선 실행해주도록 하자.
728x90
반응형