国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > PHP > 正文

PHP遞歸復(fù)制、移動(dòng)目錄的自定義函數(shù)分享

2024-05-04 23:27:32
字體:
供稿:網(wǎng)友
這篇文章主要介紹了PHP遞歸復(fù)制、移動(dòng)目錄的自定義函數(shù)分享,本文的特點(diǎn)是對(duì)每一句代碼都做詳盡的注釋,需要的朋友可以參考下
 
 

雖然復(fù)制一個(gè)目錄是文件操作的基本功能。但PHP中也沒有給出特定的函數(shù),同樣需要自定義一個(gè)遞歸函數(shù)實(shí)現(xiàn)。要復(fù)制一個(gè)包含多個(gè)子目錄的目錄,將涉及文件的復(fù)制、目錄創(chuàng)建等操作。復(fù)制一個(gè)文件可以通過PHP提供的copy()函數(shù)完成,創(chuàng)建目錄可以使用mkdir()函數(shù)。定義函數(shù)時(shí),首先對(duì)源目錄進(jìn)行遍歷,如果遇到的是普通文件,直接使用copy()函數(shù)進(jìn)行復(fù)制。如果遍歷時(shí)遇到一個(gè)目錄,則必須建立該目錄,然后再對(duì)該目錄下的文件進(jìn)行復(fù)制操作,如果還有子目錄,則使用遞歸重復(fù)操作,最終將整個(gè)目錄復(fù)制完成。自定義的遞歸函數(shù)復(fù)制目錄的程序代碼如下所示:

 

復(fù)制代碼代碼如下:

<?php
//自定義函數(shù)遞歸的復(fù)制帶有多級(jí)子目錄的目錄
function copyDir($dirSrc,$dirTo){
    if(is_file($dirTo)){      //如果目標(biāo)不是一個(gè)目錄則退出
        echo "目標(biāo)不是目錄不能創(chuàng)建?。?quot;;
        return; //退出函數(shù)
    }
    if(!file_exists($dirTo)){       //如果目標(biāo)不是一個(gè)目錄則退出
       mkdir($dirTo);              //創(chuàng)建目錄
    }
 
    if($dir_handle = @opendir($directory)){         //打開目錄,并判斷是否能成功打開
        while($filename = readdir($dir_handle)){          //循環(huán)遍歷目錄下的所有文件
            if($filename != "."&& $filename != ".."){          //一定要排除兩個(gè)特殊的目錄
               $subFile = $directory."/".$filename;          //將目錄下的子文件和當(dāng)前目錄相連
               $sunToFile = $dirTo."/".$filename;          //將目標(biāo)目錄的多級(jí)子目錄相連
               if(is_dir($subSrcFile))          //如果為目錄則條件成立
                   copyDir($subSrcFile,$subToFile);          //遞歸調(diào)用自己復(fù)制子目錄
               if(is_file($subSrcFile))          //如果是文件則條件成立
                   copy($subSrcFile,$subToFile);          //直接復(fù)制到目標(biāo)位置
            }
        }
        losedir($dir_handle);          //關(guān)閉文件資源
     }
}
 
//測(cè)試函數(shù),將目錄“phpMyAdmin”復(fù)制到“D:/admin”
copyDir("phpMyAdmin","D:/admin");
?>

 

從安全和跨平臺(tái)等方面考慮,盡量不要去調(diào)用操作系統(tǒng)的SHELL命令“cp-a”完成目錄的復(fù)制。


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 南靖县| 万载县| 阿鲁科尔沁旗| 东光县| 宁安市| 丰宁| 鄂尔多斯市| 法库县| 萍乡市| 云南省| 柳林县| 呼和浩特市| 南平市| 酒泉市| 康马县| 河池市| 子长县| 安仁县| 墨玉县| 泗阳县| 枣庄市| 浮山县| 美姑县| 格尔木市| 武强县| 当涂县| 紫阳县| 梧州市| 罗甸县| 商城县| 罗城| 天祝| 武川县| 梅州市| 甘洛县| 民丰县| 泸水县| 遵义市| 新晃| 伊吾县| 根河市|