PHP递归复制、移动目录的自定义函数分享
2015-01-24信息快讯网
这篇文章主要介绍了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”完成目录的复制。
php使用正则表达式获取图片url的方法
php使用CURL伪造IP和来源实例详解
php+mysql实现无限分类实例详解
php截取html字符串及自动补全html标签的方法
php在linux下检测mysql同步状态的方法
php计划任务之ignore_user_abort函数实现方法
php实现utf-8转unicode函数分享
php使用fputcsv()函数csv文件读写数据的方法
discuz目录文件资料汇总
PHP跨平台获取服务器IP地址自定义函数分享
php中mail函数发送邮件失败的解决方法
apache中为php 设置虚拟目录
PHP使用glob函数遍历目录或文件夹的方法
php最简单的删除目录与文件实现方法
php查找指定目录下指定大小文件的方法
php创建和删除目录函数介绍和递归删除目录函数分享
PHP打开和关闭文件操作函数总结
PHP文件读写操作相关函数总结
PHP中通过fopen()函数访问远程文件示例
PHP移动文件指针ftell()、fseek()、rewind()函数总结
PHP文件锁函数flock()详细介绍
php使用glob函数快速查询指定目录文件的方法
详谈PHP文件目录基础操作
使用array_map简单搞定PHP删除文件、删除目录
php读取目录及子目录下所有文件名的方法
php实现删除指定目录下相关文件的方法
destoon复制新模块的方法