首页 > 文章列表 > 使用 PHP 递归函数实现文件或目录的复制

使用 PHP 递归函数实现文件或目录的复制

递归函数 文件复制
445 2024-11-15

PHP 中可以通过递归函数来复制文件或目录,步骤如下:创建目标目录,如果不存在。对于源目录中的每个项,如果为目录则递归复制,否则直接复制。使用 force=true 参数可覆盖现有文件。

使用 PHP 递归函数实现文件或目录的复制

使用 PHP 递归函数实现文件或目录的复制

在 PHP 中,我们可以使用递归函数来实现文件或目录的复制。以下是如何实现的代码:

function copyDirectory($source, $destination) {
    if (! is_dir($destination)) {
        mkdir($destination, 0777, true);
    }

    $files = scandir($source);

    foreach ($files as $file) {
        if ($file == '.' or $file == '..') {
            continue;
        }

        if (is_dir($source . '/' . $file)) {
            copyDirectory($source . '/' . $file, $destination . '/' . $file);
        } else {
            copy($source . '/' . $file, $destination . '/' . $file);
        }
    }
}

实战案例

以下是如何使用该函数复制一个目录:

$sourceDirectory = '/path/to/source';
$destinationDirectory = '/path/to/destination';

copyDirectory($sourceDirectory, $destinationDirectory);

此函数将复制 sourceDirectory 中的所有文件和子目录到 destinationDirectory

请注意,此函数不会覆盖现有文件。如果您希望覆盖现有文件,可以使用 force=true 参数:

copyDirectory($sourceDirectory, $destinationDirectory, true);