Disons que j'ai un fichier test.php
en foo
ainsi que bar
. Comment puis-je remplacer bar/test.php
avec foo/test.php
en utilisant PHP
? Je suis sous Windows XP. Une solution multiplateforme serait parfaite, mais je préfère Windows.
Réponses
Trop de publicités?PHP copy()
ne fonctionne en fait que si la destination a un fichier à remplacer. Par exemple, si vous copiez un fichier A vers un fichier B, la fonction copy()
fonctionnera de la manière suivante ;
$fileA = "foo/fileA.txt";
$fileB = "bar/fileA.txt";
copy($fileA, $fileB);
Ainsi, le copy()
nécessite d'avoir un fichier dans le chemin de destination et en fait le chemin de destination doit aussi inclure le nom du fichier sinon il y aura une erreur et ne fonctionnera pas.
Mais si vous n'avez pas de fichier à la destination à remplacer, il suffit de créer un fichier avec ce nom et vous écrirez quelque chose comme ceci ;
$source = "foo/fileA.txt";
$destination = "bar/"; // note how the destination has no file.
$newFile = "somefile.txt";
touch($destination . $newFile);
// then do the copy part
copy($source, $destination.$newFile);
J'ai eu le même problème et j'ai trouvé la solution suivante : créer un fichier à la destination pour que la fonction de copie soit remplacée.
Salut les gars, je voulais aussi ajouter comment copier en utilisant un copier-coller dynamique.
Disons que nous ne connaissons pas le dossier réel que l'utilisateur va créer, mais que nous savons que dans ce dossier, nous avons besoin de fichiers à copier, pour activer une fonction comme la suppression, la mise à jour, les vues, etc.
vous pouvez utiliser quelque chose comme ceci... J'ai utilisé ce code dans un des projets complexes sur lequel je suis actuellement occupé. Je l'ai juste construit moi-même parce que toutes les réponses que j'ai obtenues 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 ça pour construire le tableau de bord de chaque nouvel utilisateur dynamique.....
<?php
// Copy the file from /user/desktop/geek.txt
// to user/Downloads/geeksforgeeks.txt'
// directory
// Store the path of source file
$source = '/user/Desktop/geek.txt';
// Store the path of destination file
$destination = 'user/Downloads/geeksforgeeks.txt';
// Copy the file from /user/desktop/geek.txt
// to user/Downloads/geeksforgeeks.txt'
// directory
if( !copy($source, $destination) ) {
echo "File can't be copied! \n";
}
else {
echo "File has been copied! \n";
}
?>
- Réponses précédentes
- Plus de réponses