• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

PHP递归复制、移动目录的自定义函数分享_php技巧

php 搞代码 4年前 (2022-01-26) 37次浏览 已收录 0个评论

虽然复制一个目录是文件操作的基本功能。但PHP中也没有给出特定的函数,同样需要自定义一个递归函数实现。要复制一个包含多个子目录的目录,将涉及文件的复制、目录创建等操作。复制一个文件可以通过PHP提供的copy()函数完成,创建目录可以使用mkdir()函数。定义函数时,首先对源目录进行遍历,如果遇到的是普通文件,直接使用copy()函数进行复制。如果遍历时遇到一个目录,则必须建立该目录,然后再对该目录下的文件进行复制操作,如果还有子目录,本文来源gaodai#ma#com搞@@代~&码*网/搞gaodaima代码则使用递归重复操作,最终将整个目录复制完成。自定义的递归函数复制目录的程序代码如下所示:

<br /><?php<br />//自定义函数递归的复制带有多级子目录的目录<br />function copyDir($dirSrc,$dirTo){<br />    if(is_file($dirTo)){      //如果目标不是一个目录则退出<br />        echo "目标不是目录不能创建!!";<br />        return; //退出函数<br />    }<br />    if(!file_exists($dirTo)){       //如果目标不是一个目录则退出<br />       mkdir($dirTo);              //创建目录<br />    }<br /> <br />    if($dir_handle = @opendir($directory)){         //打开目录,并判断是否能成功打开<br />        while($filename = readdir($dir_handle)){          //循环遍历目录下的所有文件<br />            if($filename != "."&& $filename != ".."){          //一定要排除两个特殊的目录<br />               $subFile = $directory."/".$filename;          //将目录下的子文件和当前目录相连<br />               $sunToFile = $dirTo."/".$filename;          //将目标目录的多级子目录相连<br />               if(is_dir($subSrcFile))          //如果为目录则条件成立<br />                   copyDir($subSrcFile,$subToFile);          //递归调用自己复制子目录<br />               if(is_file($subSrcFile))          //如果是文件则条件成立<br />                   copy($subSrcFile,$subToFile);          //直接复制到目标位置<br />            }<br />        }<br />        losedir($dir_handle);          //关闭文件资源<br />     }<br />}<br /> <br />//测试函数,将目录“phpMyAdmin”复制到“D:/admin”<br />copyDir("phpMyAdmin","D:/admin");<br />?><br />

从安全和跨平台等方面考虑,尽量不要去调用操作系统的SHELL命令“cp-a”完成目录的复制。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:PHP递归复制、移动目录的自定义函数分享_php技巧
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址