맛집 여행 캠핑 일상 생활

PHP 파일 move 함수 본문

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
반응형
Trackback : | Comments :