web-dev-qa-db-fra.com

Comment copier un fichier d'un répertoire à un autre en utilisant PHP?

Supposons que j'ai un fichier test.php dans le répertoire foo ainsi que bar. Comment remplacer bar/test.php par foo/test.php en utilisant PHP? Je suis sur Windows XP, une solution multi-plateforme serait bien mais Windows préféré.

137
Click Upvote

Vous pouvez utiliser la fonction copy() :

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


Citant quelques phrases pertinentes de sa page de manuel:

Effectue une copie du fichier source vers dest.

Si le fichier de destination existe déjà, il sera écrasé.

258
Pascal MARTIN

Vous pouvez utiliser la fonction rename () :

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

Ceci va cependant déplacer le fichier ne pas copier

25
Dizzi

copie le fera. Veuillez vérifier le php-manual . Une simple recherche sur Google devrait répondre à vos deux dernières questions;)

13
cweinberger

Le meilleur moyen de copier tous les fichiers d’un dossier à un autre en utilisant 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
?>

Vous pouvez copier et coller cela vous aidera

<?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";
     }
?>`

Si vous souhaitez copier plusieurs ou (fichiers illimités) visitez le lien: http://www.phpkida.com/php-tutorial/copy-multiple-files-from-one-folder-to -another-php/

3
Mukesh Jakhar

Salut les gars voulaient aussi ajouter comment copier en utilisant un copier/coller dynamique.

disons que nous ne connaissons pas le dossier que l'utilisateur va créer, mais nous savons que dans ce dossier, nous avons besoin de copier les fichiers pour activer certaines fonctions telles que la suppression, la mise à jour, les vues, etc.

vous pouvez utiliser quelque chose comme ceci ... J'ai utilisé ce code dans l'un des projets complexes sur lesquels je suis actuellement occupé. Je viens de le construire moi-même parce que toutes les réponses que j'ai eues sur Internet me donnaient une erreur.

    $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

Je pense que Facebook ou Twitter utilise quelque chose comme ceci pour créer chaque tableau de bord dynamique des nouveaux utilisateurs ....

1
Makhi Ngubane

Vous pouvez utiliser à la fois rename () et copy ().

J'ai tendance à préférer utiliser renommer si je n'ai plus besoin que le fichier source reste à son emplacement.

0
Eclipse