PHP目录/文件拷贝/复制自定义函数分享

作者:袖梨 2022-06-24

文件夹文件拷贝/复制函数如下

/**
 * 文件夹文件拷贝
 *
 * @param string $src 来源文件夹
 * @param string $dst 目的地文件夹
 * @return bool
 */
function dir_copy($src = '', $dst = '')
{
    if (empty($src) || empty($dst))
    {
        return false;
    }
    $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;
}
/**
 * 创建文件夹
 *
 * @param string $path 文件夹路径
 * @param int $mode 访问权限
 * @param bool $recursive 是否递归创建
 * @return bool
 */
function dir_mkdir($path = '', $mode = 0777, $recursive = true)
{
    clearstatcache();
    if (!is_dir($path))
    {
        mkdir($path, $mode, $recursive);
        return chmod($path, $mode);
    }
    return true;
}




PHP复制文件夹及下面所有文件,参考如下:

function xCopy($source, $destination, $child){
  //用法:
  // xCopy("feiy","feiy2",1):拷贝feiy下的文件到 feiy2,包括子目录
  // xCopy("feiy","feiy2",0):拷贝feiy下的文件到 feiy2,不包括子目录
  //参数说明:
  // $source:源目录名
  // $destination:目的目录名
  // $child:复制时,是不是包含的子目录
  if(!is_dir($source)){
    echo("Error:the $source is not a direction!");
    return 0;
  }
  if(!is_dir($destination)){
    mkdir($destination,0777);
  }
  $handle=dir($source);
  while($entry=$handle->read()) {
    if(($entry!=".")&&($entry!="..")){
      if(is_dir($source."/".$entry)){
        if($child)
        xCopy($source."/".$entry,$destination."/".$entry,$child);
      }
      else{
        copy($source."/".$entry,$destination."/".$entry);
      }
    }
  }
  return 1;
}
?>


相关文章

精彩推荐