feachall php php 的檔案操作類

2021-10-13 03:18:47 字數 3669 閱讀 8545

catch (\exception $e) private function runfiles($path)

/";if (is_file($subtarget)) /" . $val);

}else if (is_dir($subtarget)) /" . $val);$arr = array_merge_recursive($arr, $this->runfiles($subtarget));

});return $arr;

}/**新建資料夾,如果目標資料夾不存在的情況下

* @param $target

* @return mixed*/

private static function createfile($target)

return $target;

}/**判斷是否是空的資料夾

* @param $dir

* @return bool*/

private static function isemptydir($dir)

/**初始化

* @param $path

* @return file*/

public static function init($path)

/**處理檔案如複製或移動

* @param $target

* @param $mode

* @param $extension

* @return int*/

private function dealfile($target, $mode, $extension)

);return $result;

}/**獲取真實的檔案路徑

* @return array*/

public functiongetrawfiles()

/**獲取真實的資料夾路徑

* @return array*/

public functiongetrawdirs()

/**獲取全部的檔名

* @return array*/

public functiongetfiles()

);return $arr;

}/**獲取所有的資料夾

* @return array*/

public functiongetdirs()

);return $arr;

}/**獲取樹形結構圖,注意這邊的引用傳值

* @return array*/

public functiongettree()

$temp_arr = array_diff($temp_arr, $diff);$parent =& $tree;foreach ($temp_arr as $k => $v) $parent =& $parent[$v];

}if (is_file($val)) return $tree;

}/**展示資料夾的資訊

* @return array*/

public functiongetinfo()

);return['size' => $size,

'dirs' => count($dirs),

'files' => count($files)

}/**進行檔案拷貝

* @param $target

* @param null $type

* @return int*/

public function copyfiles($target, $type = null)

/**複製所有的空資料夾

* @param $target

* @return int*/

public function copydirs($target)

$diff = explode('/', self::$path);$count = 0;array_walk($dirs, function ($val) use (&$count, $target_arr, $diff) );return $count;

}/**檔案的剪下

* @param $target

* @param null $type

* @return int*/

public function movefiles($target, $type = null)

/**剪下所有的資料夾以及檔案

* @param $target

* @return array*/

public function moveall($target)

$diff = explode('/', self::$path);$count = 0;array_walk($files, function ($val) use (&$count, $target_arr, $diff) );$this->removeall();return['files' => $count,

'dirs' => $dirs];

}/**刪除指定目錄下的所有檔案

* @return int*/

public functionremovefiles()

);return $count;

}/**進行刪除資料夾所有內容的操作

* @return bool*/

public functionremoveall()

);//刪除所有檔案

$this->removefiles();array_walk($dirs, function ($val) );return self::isemptydir(self::$path);

}$path = 'd:/filetest';$target = 'd:/yftest';//所有介面展示

//獲取所有的檔名稱,含完整路徑

file::init($path)->getrawfiles();//獲取所有的檔名稱,不含路徑

file::init($path)->getfiles();//獲取所有的資料夾名稱,含完整路徑

file::init($path)->getrawdirs();//獲取所有的資料夾名稱,不含路徑

file::init($path)->getdirs();//獲取目標資料夾$path的樹形結構圖

file::init($path)->gettree();//獲取目標資料夾$path的資訊

file::init($path)->getinfo();//把$path下的所有檔案複製到$target目錄下,如果有指定型別的情況下,那麼只複製指定型別的檔案

file::init($path)->copyfiles($target, 'php');//把$path下的所有資料夾複製到$target目錄下,並且按$path的層級擺放

file::init($path)->copydirs($target);//把$path下的所有檔案剪下到$taret目錄下,如果有指定型別的情況下,那麼只移動指定型別的檔案

file::init($path)->movefiles($target, 'php');//把$path下的所有檔案及資料夾移動到$target目錄下,並且不改變原有的層級結構

file::init($path)->moveall($target);//刪除指定資料夾下的所有檔案,不含資料夾

file::init($path)->removefiles();//刪除指定路徑下的所有內容含檔案,資料夾

file::init($path)->removeall();?>

container of 的的的原理

另外一篇,同樣精彩,揭開linux核心中container of的神秘面紗 華清遠見嵌入式學院講師。在linux 核心中有乙個大名鼎鼎的巨集container of 這個巨集是用來幹嘛的呢?我們先來看看它在核心中是怎樣定義的。呵呵,乍一看不知道是什麼東東。我們先來分析一下container of p...

存在的就是合理的,發生的即是必然的。

筆者有時候會想,什麼是對,什麼是錯?對於追求某一件事情之前首先會考慮,為什麼我要做這件事情。所以經過自我分析和生活周邊環境的總結。我認為,對於乙個人來,這是在站在個體的角度上說。什麼是對的?就是你自己覺得是對的,它就是對的。不過這個只是你自己的想法。主觀上的正確,不代表客觀上也受到了別人的認可。就拿...

Apache的rewrite的重寫相關的引數

apache mod rewrite規則重寫的標誌一覽 使用mod rewrite時常用的伺服器變數 rewriterule規則表示式的說明 匹配任何單字元 chars 匹配字串 chars chars 不匹配字串 chars text1 text2 可選擇的字串 text1或text2 匹配0到1...