PHP를 사용하여 한 디렉토리에서 다른 디렉토리로 파일을 복사하는 방법은 무엇입니까?


158

말 I의 한은 파일 가지고 test.php에서 foo뿐만 아니라 같은 디렉토리 bar. bar/test.phpfoo/test.php사용하여 바꾸는 방법은 PHP무엇입니까? 저는 Windows XP를 사용하고 있습니다. 크로스 플랫폼 솔루션은 훌륭하지만 Windows를 선호합니다.

답변:


285

당신은 copy()기능을 사용할 수 있습니다 :

// Will copy foo/test.php to bar/test.php
// overwritting it if necessary
copy('foo/test.php', 'bar/test.php');


매뉴얼 페이지에서 몇 가지 관련 문장을 인용 :

파일 소스의 사본을 대상으로 만듭니다.

대상 파일이 이미 있으면 덮어 씁니다.


8
디렉토리가 없으면 copy( 'foo/test.php', 'bar/test.php' )작성 합니까 bar?
henrywright

1
@henrywright는 없으며 디렉토리 자체를 만들지 않습니다. 수동으로해야합니다. PHP 매뉴얼에 그것을 확인
Haseeb Zulfiqar에게

25

rename () 함수를 사용할 수 있습니다 .

rename('foo/test.php', 'bar/test.php');

그러나 이것은 파일 을 복사하지 않고 이동시킵니다 .


22
나는이 기능 이름 변경 및 노트 이동 또는 무엇인가라는 이유를 궁금해
themhz

@themis 나도 그들이 함수의 이름을 지 었으면 좋겠다 move. 리눅스 노출이 적다면 직관적입니다.
Fr0zenFyr

4
@themis because rename('foo/test1.php', 'foo/test2.php');;)
Anand Singh


8

복사하여 붙여 넣을 수 있습니다.

<?php
$file = '/test1/example.txt';
$newfile = '/test2/example.txt';
if(!copy($file,$newfile)){
    echo "failed to copy $file";
}
else{
    echo "copied $file into $newfile\n";
}
?>

7

PHP를 사용하여 한 폴더에서 다른 폴더로 모든 파일을 복사하는 가장 좋은 방법

<?php
$src = "/home/www/example.com/source/folders/123456";  // source folder or file
$dest = "/home/www/example.com/test/123456";   // destination folder or file        

shell_exec("cp -r $src $dest");

echo "<H2>Copy files completed!</H2>"; //output when done
?>

1

안녕하세요. 동적 복사 및 붙여 넣기를 사용하여 복사하는 방법을 추가하고 싶었습니다.

사용자가 만들 실제 폴더는 모르지만 삭제, 업데이트,보기 등과 같은 일부 기능을 활성화하려면 파일을 복사 해야하는 폴더를 알고 있습니다.

당신은 이것과 같은 것을 사용할 수 있습니다 ... 나는 현재 바쁜 프로젝트 중 하나 에서이 코드를 사용했습니다. 인터넷에서 얻은 모든 답변에 오류가 발생했기 때문에 직접 작성했습니다.

    $dirPath1 = "users/$uniqueID"; #creating main folder and where $uniqueID will be called by a database when a user login.
    $result = mkdir($dirPath1, 0755);
            $dirPath2 = "users/$uniqueID/profile"; #sub folder
            $result = mkdir($dirPath2, 0755);
                $dirPath3 = "users/$uniqueID/images"; #sub folder 
                $result = mkdir($dirPath3, 0755);
                    $dirPath4 = "users/$uniqueID/uploads";#sub folder
                    $result = mkdir($dirPath4, 0755);
                    @copy('blank/dashboard.php', 'users/'.$uniqueID.'/dashboard.php');#from blank folder to dynamic user created folder
                    @copy('blank/views.php', 'users/'.$uniqueID.'/views.php'); #from blank folder to dynamic user created folder
                    @copy('blank/upload.php', 'users/'.$uniqueID.'/upload.php'); #from blank folder to dynamic user created folder
                    @copy('blank/delete.php', 'users/'.$uniqueID.'/delete.php'); #from blank folder to dynamic user created folder

페이스 북이나 트위터는 이와 같은 것을 사용하여 모든 새로운 사용자 대시 보드를 역동적으로 만듭니다 ....


0

rename ()과 copy ()를 모두 사용할 수 있습니다.

소스 파일을 더 이상 해당 위치에 유지할 필요가 없으면 이름 바꾸기를 선호합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.