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

Cli*_*ote 141 php filesystems file-io copy file

说我test.phpfoo目录中也有一个文件bar.我怎么能代替bar/test.phpfoo/test.php使用PHP?我在Windows XP上,跨平台的解决方案会很棒但是Windows首选.

Pas*_*TIN 261

你可以使用这个copy()功能:

// Will copy foo/test.php to bar/test.php
// overwritting it if necessary
copy('foo/test.php', 'bar/test.php');
Run Code Online (Sandbox Code Playgroud)


从其手册页中引用几个相关的句子:

将文件源的副本复制到dest.

如果目标文件已存在,则将覆盖该文件.

  • `copy('foo/test.php','bar/test.php')`创建`bar`目录,如果它还不存在? (8认同)
  • 没有@henrywright,它本身不会创建目录。你必须手动完成。[查看php手册](http://php.net/manual/en/function.copy.php#62807) (2认同)

Diz*_*zzi 26

您可以使用rename()函数:

rename('foo/test.php', 'bar/test.php');
Run Code Online (Sandbox Code Playgroud)

然而,这将移动文件而不是复制

  • 我想知道为什么命名这个函数重命名并注意移动或其他东西 (19认同)
  • @themis因为`rename('foo/test1.php','foo/test2.php');`;) (3认同)

cwe*_*ger 13

副本会这样做.请查看php-manual.简单的Google搜索应该回答您的最后两个问题;)


Muk*_*har 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";
}
?>
Run Code Online (Sandbox Code Playgroud)


Yog*_*per 6

使用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
?>
Run Code Online (Sandbox Code Playgroud)

  • 在Windows / IIS上将不起作用:( (5认同)
  • 这不是一个好例子,因为大多数 Web 服务器出于安全原因都禁用了 shell 命令。 (2认同)