2017-03-28 3 views
0
copy('foo/test.php', 'bar/test.php'); 

Ci-dessus, le code qui transférera le test.php fichier foo-bar et ainsi remplacer les fichiers si nécessaire. J'essaie de réaliser ce qui précède mais avec plusieurs répertoires indéfinis. Comment ferais-je cela?Comment copier un fichier dans plusieurs répertoires, PHP?

Dans l'ensemble

  • Il y a un tas de répertoires dans un seul endroit (une quantité non définie)
  • Je dois remplacer les fichiers test.php dans ces répertoires avec la nouvelle qui a été des copies de foo.

J'apprécierais n'importe quelle aide, merci!

+2

Vous ne pouvez avoir qu'une seule destination pour la copie. Ce qui signifie que vous devez appeler la copie plusieurs fois. Il semble que vous pourriez glob à travers la structure du répertoire et copier le fichier à chacun. – mkaatman

+0

Utilisez une boucle où vous copiez ('foo/test.php', $ dir. '/test.php') 'avec plusieurs valeurs de' $ dir'. – Barmar

+1

Si tous les fichiers de destination existent déjà, vous pouvez utiliser 'glob()' pour les trouver tous. – Barmar

Répondre

0

comme il est écrit que vous pouvez passer un tableau dans des arguments et des boucles sur comme ça:

function fullCopy($oldDir = '', $newDir = []) { 
    foreach ($dir as $value){ 
     if (is_dir($oldDir && is_dir($newDir))) { 
      copy($oldDir . '/test.php', $newDir . '/test.php'); 
     } 
    } 
} 
fullCopy('foo', ['bar', 'bar2', 'bar3']); 
+0

Merci pour la réponse, mais il y a un nombre indéfini de répertoires, alors comment est-ce que je ferais cela pour qu'il prenne tous les répertoires? –

+1

@Osman Je pense que vous pouvez utiliser la fonction 'glob' de php avec l'indicateur' GLOB_ONLYDIR'. Lire la suite ici http://php.net/manual/fr/function.glob.php – kabirbaidhya

+0

@kabirbaidhya Génial, merci! Va tester cela –