加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2020-12-13 02:10:31 所属栏目:PHP教程 来源:网络整理
导读:《PHP递归复制、移动目录的自定义函数分享》要点: 本文介绍了PHP递归复制、移动目录的自定义函数分享,希望对您有用。如果有疑问,可以联系我们。 虽然复制一个目录是文件操作的基本功能.但PHP中也没有给出特定的函数,同样需要自定义一个递归函数实现.要复

《PHP递归复制、移动目录的自定义函数分享》要点:
本文介绍了PHP递归复制、移动目录的自定义函数分享,希望对您有用。如果有疑问,可以联系我们。

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

代码如下:

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

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

《PHP递归复制、移动目录的自定义函数分享》是否对您有启发,欢迎查看更多与《PHP递归复制、移动目录的自定义函数分享》相关教程,学精学透。编程之家 52php.cn为您提供精彩教程。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读