在php中有时候需要将一个文件或文件夹从一个目录中复制到另一个目录中去,而 php 也提供了一个预设一个可以实现文件复制的函数 copy(),那么下来我们就来详细的介绍一下 copy() 函数,以及它的用法。

php copy() 函数

copy():函数用来拷贝或复制文件。

语法:

copy(source,destination)

参数:

source:必需。规定要复制的文件。

destination:必需。规定复制文件的目的地。

返回值:

如果文件复制成功,返回TRUE,如果复制失败则返回 FALSE

php 复制单个文件的方法

php代码:

<?php
$file = 'name.txt'; // 被复制的文件
$file_new = 'user/name.txt'; // 被复制到的目的地,可使用不能的名字命名文件名
$bool = copy($file,$file_new); //复制成功返回 TRUE 失败返回FALSE
if($bool){
    echo '复制成功';
}else{
    echo '复制失败';
}
?>

注意:

1、copy() 无法创建不存在的文件夹,需要调用其它方法创建

2、copy() 复制失败后,在返回 FALSE 的同时,在某下情况下会报错

3、在使用 copy() 函数前,请先确认或判断被复制的文件以及目标文件夹是否存在

php 复制文件夹的方法

上面详细的说了一下 php 中利用 copy() 函数来复制单个文件的方法,那么接下来给出一个复制文件夹的方法

php代码:

<?php
/**
 * 复制文件以及文件夹
 * $src 被复制的文件
 * $dst 文件复制到的目标目录 
 */
function dir_copy($src = '', $dst = ''){ 
    $dir = opendir($src);
    dir_mkdir($dst); //判断文件夹是否存在,并创建
    while (false !== ($file = readdir($dir))){
        if (($file != '.') && ($file != '..')){
            if (is_dir($src . '/' . $file)){
                dir_copy($src . '/' . $file, $dst . '/' . $file);
            }else{
                copy($src . '/' . $file, $dst . '/' . $file);
            }
        }
    }
    closedir($dir);
    return true;
}
 
/**
 * 创建文件夹
 * 飞鸟慕鱼博客
 */
function dir_mkdir($path = '', $mode = 0777, $recursive = true){
    clearstatcache();
    if (!is_dir($path)){
        mkdir($path, $mode, $recursive);
        return chmod($path, $mode);
    }
    return true;
}
?>

函数使用方法:

<?php
dir_copy('system','user');
?>