亚洲精品中文字幕无乱码_久久亚洲精品无码AV大片_最新国产免费Av网址_国产精品3级片

PHP

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

時間:2024-10-06 22:37:18 PHP 我要投稿
  • 相關(guān)推薦

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

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

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

  <?php

  //自定義函數(shù)遞歸的復(fù)制帶有多級子目錄的目錄

  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); //遞歸調(diào)用自己復(fù)制子目錄

  if(is_file($subSrcFile)) //如果是文件則條件成立

  copy($subSrcFile,$subToFile); //直接復(fù)制到目標位置

  }

  }

  losedir($dir_handle); //關(guān)閉文件資源

  }

  }

  //測試函數(shù),將目錄“phpMyAdmin”復(fù)制到“D:/admin”

  copyDir("phpMyAdmin","D:/admin");

  ?>

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

【PHP遞歸復(fù)制、移動目錄的自定義函數(shù)操作分享】相關(guān)文章:

php實習(xí)心得12-01

php實習(xí)報告11-07

excel函數(shù)07-30

php工作總結(jié)11-11

php是什么格式?01-14

PHP Socket編程過程02-09

php開發(fā)主管的職責(zé)05-15

excel函數(shù)[優(yōu)選]07-31

php開發(fā)主管的工作職責(zé)09-29

php實習(xí)報告(5篇)11-08