Làm cách nào để sao chép một tập tin từ thư mục này sang thư mục khác bằng PHP?


158

Nói rằng tôi đã có một tập tin test.phptrong foothư mục cũng như bar. Làm thế nào tôi có thể thay thế bar/test.phpbằngfoo/test.php cách sử dụng PHP? Tôi đang dùng Windows XP, một giải pháp đa nền tảng sẽ rất tuyệt nhưng được Windows ưa thích.

Câu trả lời:


285

Bạn có thể sử dụng copy()chức năng:

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


Trích dẫn một vài câu có liên quan từ trang hướng dẫn của nó:

Tạo một bản sao của nguồn tập tin để định mệnh.

Nếu tệp đích đã tồn tại, nó sẽ bị ghi đè.


8
copy( 'foo/test.php', 'bar/test.php' )tạo barthư mục nếu nó không tồn tại?
henrywright 28/03/2016

1
Không @henrywright, nó không tự tạo thư mục. Bạn phải làm nó bằng tay. kiểm tra hướng dẫn sử dụng php
Haseeb Zulfiqar

25

Bạn có thể sử dụng hàm rename () :

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

Điều này tuy nhiên sẽ di chuyển các tập tin không sao chép


22
Tôi tự hỏi tại sao chức năng này được đặt tên lại đổi tên và di chuyển ghi chú hoặc một cái gì đó
themhz

@themis Tôi cũng mong họ đặt tên cho hàm move. Nó sẽ là trực quan nếu một người có một chút phơi bày linux.
Fr0zenFyr

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


8

Bạn có thể sao chép và qua đây sẽ giúp bạn

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

Cách tốt nhất để sao chép tất cả các tệp từ thư mục này sang thư mục khác bằng 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

Xin chào các bạn cũng muốn thêm vào cách sao chép bằng cách sao chép và dán động.

giả sử chúng ta không biết thư mục thực tế mà người dùng sẽ tạo nhưng chúng ta biết trong thư mục đó chúng ta cần sao chép các tập tin, để kích hoạt một số chức năng như xóa, cập nhật, xem, v.v.

bạn có thể sử dụng một cái gì đó như thế này ... Tôi đã sử dụng mã này trong một trong những dự án phức tạp mà tôi hiện đang bận rộn. tôi chỉ tự xây dựng nó vì tất cả các câu trả lời tôi nhận được trên internet đều gây ra lỗi cho tôi.

    $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

Tôi nghĩ rằng facebook hoặc twitter sử dụng một cái gì đó như thế này để xây dựng mỗi bảng điều khiển người dùng mới năng động ....


0

Bạn có thể sử dụng cả đổi tên () và sao chép ().

Tôi có xu hướng thích sử dụng đổi tên nếu tôi không còn yêu cầu tệp nguồn ở lại vị trí của nó.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.