PHPを使用して、あるディレクトリから別のディレクトリにファイルをコピーする方法は?


158

たとえばtest.phpfooディレクトリにファイルがあるとしますbarbar/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');


そのマニュアルページからいくつかの関連する文を引用します:

ファイルソースのコピーをdestに作成します。

宛先ファイルがすでに存在する場合は、上書きされます。


8
ディレクトリが存在しない場合はcopy( 'foo/test.php', 'bar/test.php' )作成しますbarか?
henrywright 2016年

1
いいえ@henrywright、それ自体はディレクトリを作成しません。手動で行う必要があります。
PHP

25

rename()関数を使用できます:

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

ただし、これはファイルをコピーせずに移動します


22
私は、この関数名の変更やノート動くか何かの名前、なぜだろう
themhz

@themis私も彼らが関数に名前を付けていたらよかったのにmove。Linuxに少しでも触れれば直感的です。
Fr0zenFyr 2016年

4
@themis理由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を使用して1つのフォルダーから別のフォルダーにすべてのファイルをコピーする最良の方法

<?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

こんにちは男はまた、動的なコピーと貼り付けを使用してコピーする方法を追加したいと思いました。

ユーザーが作成する実際のフォルダーはわかりませんが、削除、更新、ビューなどの機能をアクティブにするために、ファイルをコピーする必要があるフォルダーがわかっているとします。

このようなものを使用できます...このコードは、現在忙しい複雑なプロジェクトの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

FacebookやTwitterはこのようなものを使用して、すべての新しいユーザーダッシュボードを動的に構築すると思います...


0

rename()とcopy()の両方を使用できます。

ソースファイルをその場所に残す必要がなくなった場合は、名前の変更を使用する傾向があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.