如何使用 PHP 将文件从一个目录复制到另一个目录?

假设在 foo目录中有一个文件 test.php,也有一个文件 bar。如何使用 PHPbar/test.php替换为 foo/test.php?我在 Windows XP 上,一个跨平台的解决方案将是伟大的,但 Windows 的首选。

342366 次浏览

拷贝 就可以了。请检查 手册。简单的谷歌搜索应该可以回答你最后两个问题;)

你可以使用 强 > copy()函数:

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


引用手册中的一些相关句子:

将文件源复制到 如果目的地 文件已经存在,它将是 覆盖

你可以使用 Rename ()函数:

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

然而这将 让开文件 < strong > 不复制

可以同时使用 rename ()和 copy ()。

我倾向于使用重命名,如果我不再需要源文件停留在其位置。

嗨,伙计们还想添加如何使用动态复制和粘贴复制。

假设我们不知道用户将创建的实际文件夹,但我们知道在该文件夹中需要复制文件,以激活一些功能,如删除、更新、视图等。

你可以使用这样的东西... 我使用这个代码在一个复杂的项目,我目前正忙于。我自己做的,因为我在网上找到的答案都是错的。

    $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 使用类似的东西来建立每一个新的用户仪表板动态... ..。

使用 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
?>

你可以复制粘贴这个:

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

?>

PHP 的 copy()函数实际上只有在目标文件需要重写时才能工作。例如,您正在复制一个文件 A 到文件 B,copy()函数将工作的东西如下;

$fileA = "foo/fileA.txt";
$fileB = "bar/fileA.txt";
copy($fileA, $fileB);

因此,copy()要求在目的地路径有一个文件,事实上,目的地路径也应该包括该文件名,否则它将通过错误,将无法工作。

但是,如果目的地没有任何文件可以覆盖,那么只需要先创建一个具有该名称的文件,然后编写类似下面这样的代码;

$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);

我有同样的问题,并来到这个解决方案,在目的地创建一个文件的复制函数覆盖。

<?php


$file = 'example.txt';
$newfile = 'example2.txt';


if (!copy($file, $newfile)) {
    echo "failed to copy $file...\n";
}
?>