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

首頁 > 語言 > PHP > 正文

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

2024-09-04 11:43:05
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了PHP遞歸復制、移動目錄的自定義函數分享,本文的特點是對每一句代碼都做詳盡的注釋,需要的朋友可以參考下

雖然復制一個目錄是文件操作的基本功能。但PHP中也沒有給出特定的函數,同樣需要自定義一個遞歸函數實現。要復制一個包含多個子目錄的目錄,將涉及文件的復制、目錄創建等操作。

復制一個文件可以通過PHP提供的copy()函數完成,創建目錄可以使用mkdir()函數。定義函數時,首先對源目錄進行遍歷,如果遇到的是普通文件,直接使用copy()函數進行復制。

如果遍歷時遇到一個目錄,則必須建立該目錄,然后再對該目錄下的文件進行復制操作,如果還有子目錄,則使用遞歸重復操作,最終將整個目錄復制完成。自定義的遞歸函數復制目錄的程序代碼如下所示:

  1. <?php 
  2. //自定義函數遞歸的復制帶有多級子目錄的目錄 
  3. function copyDir($dirSrc,$dirTo){ 
  4.     if(is_file($dirTo)){      //如果目標不是一個目錄則退出 
  5.         echo "目標不是目錄不能創建!!"
  6.         return//退出函數 
  7.     } 
  8.     if(!file_exists($dirTo)){       //如果目標不是一個目錄則退出 
  9.        mkdir($dirTo);              //創建目錄 
  10.     } 
  11.  
  12.     if($dir_handle = @opendir($directory)){         //打開目錄,并判斷是否能成功打開 
  13.         while($filename = readdir($dir_handle)){          //循環遍歷目錄下的所有文件 
  14.             if($filename != "."&& $filename != ".."){          //一定要排除兩個特殊的目錄 
  15.                $subFile = $directory."/".$filename;          //將目錄下的子文件和當前目錄相連 
  16.                $sunToFile = $dirTo."/".$filename;          //將目標目錄的多級子目錄相連 
  17.                if(is_dir($subSrcFile))          //如果為目錄則條件成立 
  18.                    copyDir($subSrcFile,$subToFile);          //遞歸調用自己復制子目錄 
  19.                if(is_file($subSrcFile))          //如果是文件則條件成立 
  20.                    copy($subSrcFile,$subToFile);          //直接復制到目標位置 
  21.             } 
  22.         } 
  23.         losedir($dir_handle);          //關閉文件資源 
  24.      } 
  25.  
  26. //測試函數,將目錄“phpMyAdmin”復制到“D:/admin” 
  27. copyDir("phpMyAdmin","D:/admin"); 
  28. ?> 

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 万载县| 库伦旗| 乌海市| 太原市| 泸州市| 麻阳| 冷水江市| 图木舒克市| 香港| 嘉荫县| 稻城县| 镇安县| 安平县| 武隆县| 兴仁县| 松滋市| 昌江| 石城县| 玛曲县| 拜泉县| 墨竹工卡县| 阜阳市| 泗洪县| 南昌市| 屯昌县| 兰西县| 岑溪市| 曲沃县| 夏津县| 宾阳县| 白河县| 蓝山县| 静安区| 贡嘎县| 靖江市| 砀山县| 吉安县| 沂源县| 平和县| 灵川县| 靖江市|