Bagaimana cara menyalin file dari satu direktori ke direktori lain menggunakan PHP?


158

Katakanlah saya punya file test.phpdalam foodirektori jugabar . Bagaimana saya bisa mengganti bar/test.phpdengan foo/test.phpmenggunakan PHP? Saya menggunakan Windows XP, solusi lintas platform akan lebih bagus tetapi windows lebih disukai.

Jawaban:


285

Anda dapat menggunakan copy()fungsi ini:

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


Mengutip beberapa kalimat yang relevan dari halaman manualnya:

Membuat salinan sumber file ke dest.

Jika file tujuan sudah ada, itu akan ditimpa.


8
Apakah copy( 'foo/test.php', 'bar/test.php' )membuat bardirektori jika belum ada?
henrywright

1
Tidak @henrywright, itu tidak membuat direktori itu sendiri. Anda harus melakukannya secara manual. lihat di manual php
Haseeb Zulfiqar

25

Anda bisa menggunakan fungsi rename () :

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

Namun ini akan memindahkan file tidak menyalin


22
Saya bertanya-tanya mengapa fungsi ini bernama rename dan note move atau sesuatu
themhz

@ themis saya juga berharap mereka menamai fungsinya move. Akan intuitif jika seseorang memiliki sedikit eksposur linux.
Fr0zenFyr

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


8

Anda dapat menyalin dan melewati ini akan membantu Anda

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

Cara terbaik untuk menyalin semua file dari satu folder ke folder lain menggunakan 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

Hai teman-teman ingin juga menambahkan tentang cara menyalin menggunakan menyalin dan menempelkan dinamis.

katakanlah kita tidak tahu folder sebenarnya yang akan dibuat pengguna tetapi kita tahu di folder itu kita perlu menyalin file, untuk mengaktifkan beberapa fungsi seperti hapus, perbarui, tampilan dll.

Anda dapat menggunakan sesuatu seperti ini ... Saya menggunakan kode ini di salah satu proyek kompleks yang saat ini saya sibuk. saya hanya membangunnya sendiri karena semua jawaban yang saya dapatkan di internet memberi saya kesalahan.

    $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

Saya pikir facebook atau twitter menggunakan sesuatu seperti ini untuk membangun setiap dasbor dinamis pengguna baru ....


0

Anda dapat menggunakan rename () dan copy ().

Saya cenderung lebih suka menggunakan rename jika saya tidak lagi memerlukan file sumber untuk tetap berada di lokasinya.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.