วิธีคัดลอกไฟล์จากไดเรกทอรีหนึ่งไปยังอีกไดเรกทอรีหนึ่งโดยใช้ PHP


158

บอกว่าผมได้มีไฟล์test.phpในไดเรกทอรีเช่นเดียวกับfoo barฉันจะแทนที่bar/test.phpด้วยการfoo/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
ฉันสงสัยว่าทำไมชื่อฟังก์ชั่นนี้จึงเปลี่ยนชื่อและย้ายโน้ตหรือบางสิ่งบางอย่าง
พวกมัน

@themis moveฉันก็หวังว่าพวกเขาได้รับการตั้งชื่อฟังก์ชั่น มันจะเป็นสัญชาตญาณหากมีการเปิดรับ linux เล็กน้อย
Fr0zenFyr

4
@themis เพราะrename('foo/test1.php', 'foo/test2.php');;)
Anand Singh

13

สำเนาจะทำเช่นนี้ โปรดตรวจสอบPHP-คู่มือ การค้นหาโดย Google แบบง่ายควรตอบคำถามสองข้อสุดท้ายของคุณ;)


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

ฉันคิดว่า facebook หรือ twitter ใช้สิ่งนี้เพื่อสร้างแดชบอร์ดผู้ใช้ใหม่ทุกแบบไดนามิก ....


0

คุณสามารถใช้ทั้งเปลี่ยนชื่อ () และคัดลอก ()

ฉันมักจะต้องการใช้การเปลี่ยนชื่อหากฉันไม่ต้องการให้ไฟล์ต้นฉบับอยู่ในตำแหน่งของมันอีกต่อไป

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.