move 함수 > php

본문 바로가기

php

move 함수

작성일 18-08-20 16:25

페이지 정보

작성자서방님 조회 204회 댓글 0건

본문

<?

$FILENAME1 = $_SERVER["DOCUMENT_ROOT"]."/test2/aaa.php"; // /home/seobangnim/www

$FILENAME2 = $_SERVER["DOCUMENT_ROOT"]."/test2/bbb.php";



if (file_exists($FILENAME1)) { // 해당 경로에 원본 파일이 존재한다면

Debug("파일 존재");

$result = rename($FILENAME1, $FILENAME2); // 대상 경로에 파일 이름 변경하여 move

Debug($result);

}

else {

Debug("파일 존재 X");

}


Debug("완료");

?>



===================================

출처 : http://itrooms.tistory.com/98


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);

}

}

}

없는 디렉토리에 옮길려고 하면 안되니 이부분을 우선 실행해주도록 하자.


댓글목록

등록된 댓글이 없습니다.

게시물 검색
Copyright © 서방님.kr All rights reserved.
PC 버전으로 보기