PHP का उपयोग करके एक निर्देशिका से दूसरे में एक फ़ाइल की प्रतिलिपि कैसे करें?


158

मान लीजिए कि मुझे निर्देशिका test.phpमें एक फाइल मिल fooगई है bar। मैं उपयोग करने के bar/test.phpसाथ कैसे बदल सकता हूं ? मैं विंडोज़ एक्सपी पर हूं, एक क्रॉस प्लेटफ़ॉर्म सॉल्यूशन बढ़िया होगा लेकिन विंडोज़ पसंद किए गए।foo/test.phpPHP

जवाबों:


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निर्देशिका यदि वह पहले से मौजूद नहीं है?
हेनरीटाइट

1
नहीं @henrywright, यह खुद निर्देशिका नहीं बनाता है। आपको इसे मैन्युअल रूप से करना होगा। इसे php मैनुअल पर देखें
हसीब ज़ुल्फ़िकार

25

आप नाम बदलें () फ़ंक्शन का उपयोग कर सकते हैं :

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

हालांकि यह होगा के लिए कदम फ़ाइल नहीं कॉपी


22
मुझे आश्चर्य है कि क्यों इस समारोह का नाम बदल दिया और नोट चाल या कुछ
themhz

@ किन्नर मैं भी चाहता हूं कि उन्होंने इस समारोह का नाम रखा था move। यह सहज होगा यदि किसी के पास थोड़ा सा लीनक्स एक्सपोजर हो।
Fr0zenFyr

4
@ टेटिस क्योंकि rename('foo/test1.php', 'foo/test2.php');;)
आनंद सिंह


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

मुझे लगता है कि फेसबुक या ट्विटर हर नए उपयोगकर्ता डैशबोर्ड को गतिशील बनाने के लिए कुछ इस तरह का उपयोग करता है ...।


0

आप नाम बदलें () और प्रतिलिपि () दोनों का उपयोग कर सकते हैं।

अगर मुझे अब इसके स्थान पर रहने के लिए स्रोत फ़ाइल की आवश्यकता नहीं है, तो मैं नाम बदलना पसंद करता हूं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.