本文我们分享两个php复制目录或者文件的自定义函数dir_copy($src = '', $dst = ''),后面分享的函数可以复制文件夹及下面所有文件。
文件夹文件拷贝/复制函数如下
/** * 文件夹文件拷贝 * * @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;}?>