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.

Klik Upvote
sumber

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.

Pascal MARTIN
sumber
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

Dizzi
sumber
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
13

copy akan melakukan ini. Silakan periksa manual-php . Pencarian Google sederhana harus menjawab dua pertanyaan terakhir Anda;)

cweinberger
sumber
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";
}
?>
Mukesh Jakhar
sumber
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
?>
Yogendra - Pengembang eCommerce
sumber
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 ....

Makhi Ngubane
sumber
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.

Gerhana
sumber