php移动文件或者递归移动文件夹
用php移动文件或者移动文件夹,可以用php的自带函数:rename函数。
此处自己写了个函数实现rename函数的功能。
代码和注释:
<?php header("Content-type:text/html;charset=UTF-8"); /** * 递归移动源目录(包括文件和子文件)到目的目录【或移动源文件到新文件】 * @param [string] $source 源目录或源文件 * @param [string] $target 目的目录或目的文件 * @return boolean true */ function moveFolder($source, $target){ if(!file_exists($source))return false; //如果源目录/文件不存在返回false //如果要移动文件 if(filetype($source) == "file"){ $basedir = dirname($target); if(!is_dir($basedir))mkdir($basedir); //目标目录不存在时给它创建目录 copy($source, $target); unlink($source); }else{ //如果要移动目录 if(!file_exists($target))mkdir($target); //目标目录不存在时就创建 $files = array(); //存放文件 $dirs = array(); //存放目录 $fh = opendir($source); if($fh != false){ while($row = readdir($fh)){ $src_file = $source . "/" . $row; //每个源文件 if($row != "." && $row != ".."){ if(!is_dir($src_file)){ $files[] = $row; }else{ $dirs[] = $row; } } } closedir($fh); } foreach($files as $v){ copy($source . "/" . $v, $target . "/" . $v); unlink($source . "/" . $v); } if(count($dirs)){ foreach($dirs as $v){ moveFolder($source . "/" . $v, $target . "/" . $v); } } } return true; } // $basedir = dirname(__FILE__); // $src = $basedir . "/ccc"; // $dst = $basedir . "/ddd"; $src = "./aaa.html"; $dst = "D:/abc/def/test.html"; if(moveFolder($src, $dst)){ echo "移动成功"; } ?>
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。