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

 更新时间:2014年11月18日 10:18:18   投稿:junjie  
这篇文章主要介绍了PHP递归复制、移动目录的自定义函数分享,本文的特点是对每一句代码都做详尽的注释,需要的朋友可以参考下

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

复制代码 代码如下:

<?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”完成目录的复制。

相关文章

  • 采用memcache在web集群中实现session的同步会话

    采用memcache在web集群中实现session的同步会话

    这篇文章主要介绍了采用memcache在web集群中实现session的同步会话,需要的朋友可以参考下
    2014-07-07
  • 查找php配置文件php.ini所在路径的二种方法

    查找php配置文件php.ini所在路径的二种方法

    这篇文章主要介绍了查找php配置文件php.ini所在路径的二种方法,很多同学在安装完php后找不到php.ini,或者是别人安装的环境,本文的方法简单实用,需要的朋友可以参考下
    2014-05-05
  • php时间函数用法分析

    php时间函数用法分析

    这篇文章主要介绍了php时间函数用法,结合实例形式分析了php时间戳相关函数time,mktime,date及strtotime的使用方法,非常简单实用,需要的朋友可以参考下
    2016-05-05
  • PHP性能分析工具XHProf安装使用教程

    PHP性能分析工具XHProf安装使用教程

    这篇文章主要介绍了PHP性能分析工具XHProf安装使用教程,本文给出详细安装步骤和配置方法以及使用实例,需要的朋友可以参考下
    2015-05-05
  • php 获取SWF动画截图示例代码

    php 获取SWF动画截图示例代码

    这篇文章主要介绍了php获取SWF动画截图的方法,需要的朋友可以参考下
    2014-02-02
  • 漂亮的thinkphp 跳转页封装示例

    漂亮的thinkphp 跳转页封装示例

    今天小编就为大家分享一篇漂亮的thinkphp 跳转页封装示例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-10-10
  • php与Mysql的一些简单的操作

    php与Mysql的一些简单的操作

    本文给大家分享的是php连接mysql数据库的方式以及操作数据库的方法,需要的朋友可以参考下
    2015-02-02
  • 对象失去焦点时自己动提交数据的实现代码

    对象失去焦点时自己动提交数据的实现代码

    生产线上,提升输入员输入效率,在没有购买到Bar code枪之前,需要修改程序,即是说当mouse光标离开TextBox之后,数据自动提交到数据库中
    2012-11-11
  • PHP中in_array函数使用的问题与解决办法

    PHP中in_array函数使用的问题与解决办法

    相信大家都知道in_array函数是判断数据中是否存在指定的内容了,对于这个函数用法非常的简单,但在使用过程中会我发现有一些问题,下面我们就对于这些问题来看看如何处理吧.有需要的朋友们可以参考借鉴。
    2016-09-09
  • php获取网站百度快照日期的方法

    php获取网站百度快照日期的方法

    这篇文章主要介绍了php获取网站百度快照日期的方法,涉及php页面读取及正则匹配的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07

最新评论