ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [php] 파일 이동, 복사 함수
    웹프로그래밍/PHP 2015.04.15 11:45

    php에서는 copy함수를 이용하여 간단하게 파일을 복사하거나 unlink(또는 delete)함수로 파일을 삭제할 수 있습니다. 이 두 함수는 복사, 삭제에 성공할 경우 true를, 실패하면 오류 코드 메시지를 표시하므로 함수 앞에 @를 붙여 보안 유효성을 높여 주도록 합니다.

    bool copy ( string $source , string $dest [, resource $context ] ) (PHP 4, PHP 5)

     copy(원본 파일명, 복사 파일명);
     unlink(삭제 파일명);

    대상 파일이 이미 존재하면 덮어 쓰는 점에 주의가 필요합니다. 다음은 파일 복사 예제입니다.

    예제 (ex #1

     <?php
     
    // test.php파일을 복사본 test.php.bak로 만듭니다.
     
    $oldfile 'test.php'
    // 원본파일
     
    $newfile 'test.php.bak'
    // 복사파일

     // 실제 존재하는 파일인지 체크...
     
    if(file_exists($oldfile
    )) {
          if(!
    copy($oldfile$newfile
    )) {
                echo 
    "파일 복사 실패"
    ;
          } else if(
    file_exists($newfile
    )) {
                echo 
    "파일 복사 성공"
    ;
          }
     }
     
    ?>


    다음은 파일 이동 예제입니다.

    예제 (ex #2

     <?php
     
    // test.php파일을 test.txt로 만듭니다.
     
    $oldfile 'test.php'
    // 원본파일
     
    $newfile 'test.txt'
    // 복사파일

     // 실제 존재하는 파일인지 체크...
     
    if(file_exists($oldfile
    )) {
          if(!
    copy($oldfile$newfile
    )) {
                echo 
    "파일 복사에 실패하였습니다."
    ;
          } else if(
    file_exists($newfile
    )) {
                
    // 복사에 성공하면 원본 파일을 삭제합니다.
                
    if(!@unlink($oldfile
    )){
                     if(@
    unlink($newfile
    )){
                          echo 
    "파일이동에 실패하였습니다."
    ;
                     }
                }
          }
     }
     
    ?>


    단순히 파일이름만 변경 원할 경우 rename함수를 이용하면 됩니다. 이 함수는 파일(또는 폴더)의 이름을 변경합니다. 성공하면 true를, 실패하면 false를 반환합니다.

    bool
    rename ( string $oldname , string $newname [, resource $context ] ) (PHP 4, PHP 5)

    예제 (ex #3

     <?php
     
    // dir1 폴더를 dir2폴더로 이름을 변경합니다.
     
    if(rename("dir1","dir2"
    )){
         echo 
    "이름 변경 성공"
    ;
     }

     
    // file1.php을 file2.php로 이름을 변경합니다.
     
    if(rename("file1.php","file2.php"
    )){
         echo 
    "이름 변경 성공"
    ;
     }
     
    ?>


    단순히 copy, unlink함수를 이용하지 않고, fopen함수로 표현이 가능합니다. 다음이 그 좋은 예입니다.

    예제 (ex #4

     <?php
     
    // test.php파일을 복사본 test.php.bak로 만듭니다.
     
    $oldfile 'test.php'
    // 원본파일
     
    $newfile 'test.php.bak'
    // 복사파일

     
    if(file_exists($oldfile
    )) {
          
    $data file_get_contents($oldfile
    );
          
    $fp fopen($newfile'w+'
    );
          if(
    is_resource($fp
    )){
                
    fputs($fp$data
    );
          }
          
    fclose($fp
    );
     }
     
    ?>


    예제 (ex #5

     <?php
     
    // test.php파일을 복사본 test.php.bak로 만듭니다.
     
    $oldfile 'test.php'
    // 원본파일
     
    $newfile 'test.php.bak'
    // 복사파일

     
    if(file_exists($oldfile
    )) {
         
    $fold fopen($oldfile,'r'
    ); 
         if(
    is_resource($fold
    )){
                
    $fnew fopen($newfile,'w+'
    ); 
                
    $len stream_copy_to_stream($fold,$fnew
    ); 
                
    fclose($fold
    ); 
                
    fclose($fnew
    ); 
         }
     }
     
    ?>

     

     

    출처 : http://blog.habonyphp.com/62#.VS3Qm2ccS70

     

    '웹프로그래밍 > PHP' 카테고리의 다른 글

    PHP에서 csv로 저장시 연락처 0 삭제 방지  (0) 2015.10.23
    정규식 정리  (0) 2015.06.14
    [php] 파일 이동, 복사 함수  (0) 2015.04.15
    PHP + jQuery AJAX Upload  (0) 2015.04.10
    PHP XML CDATA Parsing  (0) 2015.04.10
    PHP DOMDocument getting Attribute of Tag  (0) 2015.04.10

    댓글 0

Designed by Tistory.