最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2014年11月18日 10:18:18   投稿:junjie  
這篇文章主要介紹了PHP遞歸復制、移動目錄的自定義函數(shù)分享,本文的特點是對每一句代碼都做詳盡的注釋,需要的朋友可以參考下

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

復制代碼 代碼如下:

<?php
//自定義函數(shù)遞歸的復制帶有多級子目錄的目錄
function copyDir($dirSrc,$dirTo){
    if(is_file($dirTo)){      //如果目標不是一個目錄則退出
        echo "目標不是目錄不能創(chuàng)建?。?;
        return; //退出函數(shù)
    }
    if(!file_exists($dirTo)){       //如果目標不是一個目錄則退出
       mkdir($dirTo);              //創(chuàng)建目錄
    }
 
    if($dir_handle = @opendir($directory)){         //打開目錄,并判斷是否能成功打開
        while($filename = readdir($dir_handle)){          //循環(huán)遍歷目錄下的所有文件
            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);          //關閉文件資源
     }
}
 
//測試函數(shù),將目錄“phpMyAdmin”復制到“D:/admin”
copyDir("phpMyAdmin","D:/admin");
?>

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

相關文章

  • php簡單實現(xiàn)多維數(shù)組排序的方法

    php簡單實現(xiàn)多維數(shù)組排序的方法

    這篇文章主要介紹了php簡單實現(xiàn)多維數(shù)組排序的方法,涉及php數(shù)組的遍歷及array_multisort函數(shù)的相關使用技巧,需要的朋友可以參考下
    2016-09-09
  • 解決php接收shell返回的結果中文亂碼問題

    解決php接收shell返回的結果中文亂碼問題

    shell輸出的有中文,則php得到的中文返回結果為亂碼,下面有個不錯的解決方法,大家可以參考下
    2014-01-01
  • PHP多進程編程實例詳解

    PHP多進程編程實例詳解

    這篇文章主要介紹了PHP多進程編程方法,較為詳細的分析了PHP多進程編程的概念、用法、相關函數(shù)與使用技巧,需要的朋友可以參考下
    2017-07-07
  • php INI配置文件的解析實現(xiàn)分析

    php INI配置文件的解析實現(xiàn)分析

    我不知道怎么說才好,因為我在讀INI文件的時候,往往都是用現(xiàn)成的函數(shù):parse_ini_file或者是parse_ini_string,但怎么寫入,就是另外的方法了(自己實現(xiàn)。。。。)
    2011-01-01
  • php連接mysql之mysql_connect()與mysqli_connect()的區(qū)別

    php連接mysql之mysql_connect()與mysqli_connect()的區(qū)別

    本擴展自 PHP 5.5.0 起已廢棄,并在將來會被移除。應使用 MySQLi 或 PDO_MySQL 擴展來替換之,這里就為大家分享一下mysql_connect()與mysqli_connect()的區(qū)別,需要的朋友可以參考下
    2020-07-07
  • PHP隊列原理及基于隊列的寫文件案例

    PHP隊列原理及基于隊列的寫文件案例

    這篇文章主要介紹了PHP隊列原理及基于隊列的寫文件案例,較為詳細的分析了隊列的原理、定義方法并結合實例形式給出了php基于隊列的寫文件操作技巧,需要的朋友可以參考下
    2017-11-11
  • 10個對初學者非常有用的PHP技巧

    10個對初學者非常有用的PHP技巧

    這篇文章主要為大家詳細介紹了10個對初學者非常有用的PHP技巧,這些PHP技巧適用于初學者,而不是那些已經在使用MVC框架的人,感興趣的小伙伴們可以參考一下
    2016-04-04
  • PHP實現(xiàn)的ID混淆算法類與用法示例

    PHP實現(xiàn)的ID混淆算法類與用法示例

    這篇文章主要介紹了PHP實現(xiàn)的ID混淆算法類與用法,結合實例形式分析了php針對數(shù)字基于位運算、位移等操作的加密解密相關實現(xiàn)技巧,需要的朋友可以參考下
    2018-08-08
  • PHP各版本中函數(shù)的類型聲明詳解

    PHP各版本中函數(shù)的類型聲明詳解

    本文給大家匯總介紹了下PHP各版本中函數(shù)的類型聲明的使用方法,非常簡單實用,有需要的小伙伴可以參考下
    2018-01-01
  • php生成酷炫的四個字符驗證碼

    php生成酷炫的四個字符驗證碼

    可以生成隨機顏色、干擾線條元素、干擾點元素的php驗證碼,這篇文章主要介紹了php生成酷炫的四個字符驗證碼的編寫方法,感興趣的小伙伴們可以參考一下
    2016-04-04

最新評論

龙口市| 武穴市| 驻马店市| 丹寨县| 潞西市| 噶尔县| 开原市| 河间市| 新密市| 托克逊县| 榆中县| 蒙自县| 开阳县| 龙井市| 武山县| 从化市| 青铜峡市| 中江县| 仁怀市| 汾西县| 石河子市| 桐庐县| 庆云县| 老河口市| 清河县| 肥东县| 汨罗市| 祁阳县| 南部县| 东兴市| 建始县| 丰城市| 黄冈市| 明光市| 巴彦淖尔市| 长丰县| 绥棱县| 澄江县| 资中县| 乌拉特前旗| 元朗区|